python の format について理解したこと
format 指定の中身の : とか . とかの順序がよく分からなくなり、そのたびネット検索していました。
公式ドキュメントに当たったところ理解が深まったのでよく使う書式についてだけ抜き出してまとめておきます。
print ("{:.2f}".format(a))
とあるとき、
"" の中身が Format String Syntax (書式指定文字列の文法)で解釈される。
{} と中身(:.2f)が上記文法で定義されるところの replacement_field(置換フィールド)。
さらに中を見ていき、: に続く .2f が fromat_spec (書式指定)。これは、Format Specification Mini-Language(書式指定ミニ言語)の文法で解釈される。この文法によれば、
. に続く 2 が precision (精度)を表し、その後ろの f が type を表す。
type が f というのは、Fixed-point notation (固定小数点表記)を指定し、小数点以下2(←precisionで指定した値)桁まで表示する。
type が e だった場合、Scientific notation(科学的表記)を指定し、X.XX eXX のような指数表記になり、同様に小数点以下2桁まで表示される。小数点以上に1桁あるので、有効数字は3(precision で指定した値 + 1)桁になる。
以下は参考コード。
#"format_test.py"
a = 0.2367
print ("{:.2f}".format(a)) # -> 0.24
print ("{:.2e}".format(a)) # -> 2.37e-1
参考URL:
https://docs.python.org/ja/3.8/tutorial/inputoutput.html
https://docs.python.org/ja/3.8/library/string.html#formatstrings
https://docs.python.org/ja/3.8/library/string.html#format-specification-mini-language