生命力はどこ行った?

サラリーマンやってます。書きます。

Python3エンジニア認定基礎試験で出題される%5.3fについて

久しぶりにはてなを開いた。

Python3エンジニア認定基礎試験を受けるため、模擬試験に挑戦しているのだが、以下の問題に引っかかった。会社の研修でJavaを少し書いたことがあるくらいで、正直プログラミングのプの字もわからない。

 

問題 %5.3f

 

問題

問題文のprint文を実行した場合の、出力結果を選びなさい。

print("出力結果:")
print('円周率は%5.3fである。'%math.pi)

 

解答

出力結果:円周率は3.142である。

 

 

どういう訳で、%5.3fを記述すると、3.142になるのかが分からなくてググった。でも載っていたのは当てにならない以下の記事にしか辿り着かなかった。Pythonチュートリアルを見ても、書いてある意味が理解できなかった。だから次の誰かが困った時のためにここに訳を残しておくことにする。

 

なんか惜しいんだけど、欲しい答えではない。ググるとよく出て来るやつ。

teratail.com

auewe.hatenablog.com

 

Pythonチュートリアル

docs.python.jp

docs.python.jp

 

 

 

解説 %5.3f '%math.pi

で、どういう意味なのかというと、まず左側「%5.3f」の「%」の部分は、右側「'%math.pi」に記載されている標準ライブラリのpiの結果である円周率3.141592653589793を意味する。これを5.3fで表示してくれってこと。5.3fがなんなのかっていうと、点の前の5は最小の印字数を表していて、点の後の3は小数点以下の数字を表している。

 

つまり以下の数字を小数点を含めて5つ印字すると3.141になるのだ。

3.141592653589793 → 3.141(整数部+小数点+小数点以下3桁で合計5桁)

 

 
 

例題

 
以下を実行する。
・print('円周率は%5.2fである。'%1)

 

結果は以下の通り。

・円周率は 1.00である。

 

小数点以下は指定通り2つになっている。

印字数も最低5桁を指定しているので、1.00の前に半角スペースが入り、桁数が調整される。

 

こんな感じでチュートリアル読んでもよく分からないものがあれば、色々自分で実行してみて試すと段々とわかるかもしれない。

 

 

 

備考

 

ちなみに模擬試験はこちらから受験できるよ。

diver.diveintocode.jp

 

それでは、Python3エンジニア認定基礎試験を受験する皆に幸運を祈る!