Pythonのフォーマット済み文字列リテラル(f-string、f文字列)
> > Pythonのフォーマット済み文字列リテラル(f-string、f文字列)
フォーマット済み文字列リテラル(f-string、f文字列)について
Pythonではバージョン3.6よりフォーマット済み文字列リテラル(f-string)というものが追加されています。
接頭辞 'f' または 'F'を付けることで、文字列の中に変数や式などを組み込んで記載することが可能になります。
7.1.1. フォーマット済み文字列リテラル
2.4.3. フォーマット済み文字列リテラル
環境
今回動作の確認を行った際のバージョンは下記の通り
python:3.10.9
numpy:1.24.3
基本的な使い方
文字列に接頭辞 'f' または 'F'を付け、変数を{}で囲んで記載するだけです。
整数型など文字列以外の型や変数、式を使用したりすることが可能です。
{変数=}と記述することで、変数名も一緒に出力してくれます。
if __name__ == '__main__':print(f'{1}と{3}は奇数です')# 1と3は奇数ですa = '奇数'print(f'{1}と{3}は{a}です')# 1と3は奇数ですx = 10y = 20print(f'{x}+{y}={x+y}')# 10+20=30print(f'{x=}と{y=}の和は{x + y=}です')# x=10とy=20の和はx + y=30です
書式設定
{}内でコロンを用いることで文字列の書式を指定することも可能です。
0埋め
if __name__ == '__main__':for i in range(3):print(f'{i:08}回目です')# 00000000回目です# 00000001回目です# 00000002回目です
桁区切り
if __name__ == '__main__':for i in range(3):print(f'{i+1000:,}回目です')# 1,000回目です# 1,001回目です# 1,002回目です
小数点以下の桁数指定
if __name__ == '__main__':for i in range(1,3):print(f'{i/100:.3f}回目です')# 0.010回目です# 0.020回目です
幅指定(自動、左寄せ、中央寄せ、右寄せ)
if __name__ == '__main__':x = 10y = 20# 自動設定print(f'{x=:5}と{y=:10}の和は{x + y=}です')# x= 10とy= 20の和はx + y=30です# 左寄せprint(f'{x=:<5}と{y=:<10}の和は{x + y=}です')# x=10 とy=20 の和はx + y=30です# 中央寄せprint(f'{x=:^5}と{y=:^10}の和は{x + y=}です')# x= 10 とy= 20 の和はx + y=30です# 右寄せprint(f'{x=:>5}と{y=:>10}の和は{x + y=}です')# x= 10とy= 20の和はx + y=30です