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
