printで出力のformatを指定する
format関数の基本的な使い方
中括弧(波括弧ともいう){} で囲まれた「置換フィールド」を埋め込み、format( ) メソッドの引数で {} の部分を置換する。
print("{0}さんの身長は{1}cm、体重は{2}kgです。".format("太郎", 178, 65.2)) # 太郎さんの身長は178cm、体重は65.2kgです。
置換はインデックス番号の対応で行われるため、インデックスを指定すれば同じ値を複数埋め込むことができる。あるいは変数に名前を付けて指定することもできる。
print("{name}さんの身長は{height}cm、体重は{weight}kgです。".format(name="太郎", height=178, weight=65.2)) # 太郎さんの身長は178cm、体重は65.2kgです。
なお、format関数の中では変数の演算ができる。文字列についても連結可能である。
num1 = 1 num2 = 2 print("{0} + {1} は {2} です。".format(num1, num2, num1+num2)) # 1 + 2 は 3 です。
シングルクォート ‘ だけでなくダブルクォート ” でもトリプルクォート ”’ や “”” でもOK。このようにして文字列を整形することができる。
※桁合わせやゼロ埋め、中央合わせなどについては別のページに記載してあるので参考にして下さい。
%で書式を指定する方法
なお、format関数で指定しなくても以下のようにタプルを渡すことができる。
print("好きな果物は%sと%sです。" %('リンゴ','バナナ')) # 好きな果物はリンゴとバナナです。
リストの要素を指定することも可能。
fs = ['リンゴ','バナナ'] print("好きな果物は%sと%sです。" %(fs[0],fs[1])) # 好きな果物はリンゴとバナナです。
Pythonのこの書式でよく用いられる変数の型は次の通り。
記号 | 型(タイプ) | 備考 |
---|---|---|
s |
文字列 | これがデフォルトなので、通常は省略する。 |
d |
整数(10進数) | 2進数はb 、16進数はx またはX 。 |
e またはE |
浮動小数点数(指数表記) | 大文字(E )の場合は指数表記にeでなくEが使われる。 |
f またはF |
浮動小数点数(小数点表記) | 大文字(F )の場合はnanがNAN、infがINFと表示される。 |
「f文字列」の使い方
Python3.6から「f文字列」という書式が導入され、format関数を使うよりもシンプルに書けるようになった。
a = "うさぎ" b = "かめ" print(f'{a} と {b}') # うさぎ と かめ
f’xxx’(もしくは F’xxx’)と指定すれば変数名でフォーマット指定が可能。基本的な使い方はformat関数とほとんど同じである。
例えばf文字列内で datetime クラスを利用して日付を表示するには以下のようにする。
import datetime today = datetime.datetime.today() print(f"{today:%B %d, %Y}") # May 20, 2021