【Python】printで出力のformatを指定する

PythonのTopに戻る


 

 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と表示される。

基本的にはC言語などと同じである。

 

「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

PythonのTopに戻る