見出し画像

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()と同じように使うことができます。

いいなと思ったら応援しよう!