Pythonでプログラミング! - ちょっとtips!-format()
文字列の中に文字、数字、変数を入れ込むときに{}とformat()を使うことができます。
print("今日は{}月{}日、 天気は{}でした。".format(8,20,"晴"))
とすると
今日は8月20日、 天気は晴でした
と出力されます。{}とformat()の順番が同じ場合は同じであれば数字での指定はいらないですが、もし順番を変更したい時は順番をつけて指定することもできます。
print("今日は{1}月{0}日、 天気は{2}でした。".format(8,20,"晴"))
これを実行すると、
今日は20月8日、 天気は晴でした。
となり20と8が逆になっているのがわかると思います。この場合は数字で指定でしているので順番が変わっていますが、順番通りであれば省略できます。
変数も入れることができます。
st = "晴"
print("今日は{1}月{0}日、 天気は{2}でした。".format(8,20,st))
として実行すると、
今日は20月8日、 天気は晴でした。
となります。
型(タイプ)の指定もできます。
st = "晴"
print("今日は{1:.1f}月{0}日、 天気は{2}でした。".format(8,20,st)
今日は20.0月8日、 天気は晴でした。20.0というのがfloatを指定している部分です。小数点になっています。
文字寄せ・パディングもできます。">"を使ってどちに寄せるか指定します。
foo = 10
print("数値=[{:*>5d}]".format(foo))
print("数値=[{:*<5d}]".format(foo))
数値=[***10]
数値=[10***]
となります。この場合">または<"の前に"*"をつけているので"*"で前後を埋める形になります。この指定をしない場合は空白で埋められます。
foo = 10
print("数値=[{:<5d}]".format(foo))
数値=[10 ]
となり、上記の場合は右側が空白となります。
f文字列(フォーマット済み文字列リテラル)
文字列の場合" "の前に"f"をつけることで{}の中に直接、数字、変数などが入るようになります。
foo = 10
print(f"{foo}")
print(f"{foo:*<5d}")
print(f"{foo:*>5d}")
print(f"{foo:>5d}")
出力は
10
10***
***10
10
となります。型(タイプ)の指定もformat()と同じように使うことができます。