popup mlv

作ったり、買ったり、遊んだり。

pythonのformat関数が便利という話

f:id:popupin0x0:20171101192602j:plain

pythonのformat関数を使って文字列を入力するのはめんどくさいことを考えなくてもかんたんに動かせるという話です。

python 3.6では新たにフォーマット文字列リテラルがサポートされもっと短く書けるようになりました。

apple = "Apple"
banana = "Banana"
pen = "Pen"

format関数を使わずに今まで通り%形式で書く

この場合は文字と整数で型を意識する必要があります。

print("%s %s %s %s %d" % (banana, pen, apple, pen, 1))
Banana Pen Apple Pen 1

format関数を使う場合

この場合は文字と数値の型を意識する必要はないのでかんたんにかけます。

print("{} {} {} {} {}".format(banana, pen, apple, pen, 2))
print("{1} {2} {0} {2} {3}".format(apple, banana, pen, 3))
Banana Pen Apple Pen 2
Banana Pen Apple Pen 3

python 3.6でサポートされた新しい方法

フォーマット文字列リテラルはformatと書かなくていいのでもっと短く書けるようになります。

print(f"{banana} {pen} {apple} {pen} {4}")
Banana Pen Apple Pen 4

最後に

format文字列を積極的に使ったほうが見やすくなります。%形式ではエラーがうるさいので自分が間違えたところがすぐわかるのですがものすごく見にくくなってしまうので困りものです。

追記 宣言を貼っておくの忘れていました。