Python入門:format
format関数
format関数は、文字列の中に変数を割り込んで入れたいときに利用できる関数です。
例えば、「君の得点は〇〇だ。」という文字列の〇〇の中に変数scoreを参照したい!といった場合に使えます。
変数scoreを文字列に変換して連結すれば同じようなことができますが、format関数を使うとよりシンプルに書くことができます。
文字列の中の{}の部分のことを置換フィールドといいます。format関数では、置換フィールドに引数の値を代入します。そうして作られた文字列を戻り値として返します。
score=80
print("君の得点は{}だ。".format(score)) #format関数を使って変数を文字列の置換フィールドへ代入#format関数を使って変数を文字列の置換フィールドへ代入
君の得点は80だ。
また、文字列の中には変数を複数入れることができます。
name="チャーリー"
age=33
interest="スキー"
print("私の名前は{}\n年齢は{}\n趣味は{}です。".format(name,age,interest))
私の名前はチャーリー
年齢は33
趣味はスキーです。
置換フィールドの中に数字を入れることで、どの引数を参照するか指定することができます。
name="チャーリー"
age=33
interest="スキー"
print("私の名前は{0}\n年齢は{2}\n趣味は{1}です。".format(name,interest,age))
私の名前はチャーリー
年齢は33
趣味はスキーです。
また、format関数は、キーワード引数を指定することができます。
キーワード引数は上のように使います。
name="チャーリー"
age=33
interest="スキー"
print("私の名前は{n}\n年齢は{a}\n趣味は{i}です。".format(n=name,a=age,i=interest))
私の名前はチャーリー
年齢は33
趣味はスキーです。
f-strings
f-stringsを使うと、format関数よりも簡単に書くことができます。
上のように書くことによって、置換フィールドの中に直接変数を指定することができます。
また、fは大文字でも機能します。
name="チャーリー"
age=33
interest="スキー"
print(f"私の名前は{name}\n年齢は{age}\n趣味は{interest}です。")
私の名前はチャーリー
年齢は33
趣味はスキーです。
書式指定
置換フィールドに入れる数値などを、0で穴埋めしたり、桁を揃えたい場合は書式を指定します。
Pythonでは、format関数とf-stringsの置換フィールドに、書式指定文字列を入れることで、書式を指定することができます。
format関数、f-stringsで書式指定するときは、置換フィールドの中に:(セミコロン)を入れ、その後ろに書式指定文字列を書きます。
#書式指定の例:0埋めするコード
id=40
print("あなたのIDは{id:03}点です") #3字になるように0埋め
id=430
print("あなたのIDは{:05}点です".format(id)) #5字になるように0埋め#5字になるように0埋め@#書式指定の例:0埋めするコード
あなたのIDは040点です
あなたのIDは00430点です
上のコードのように、書式指定文字列を【0字数】となるように入力する字数を指定して0埋めすることができます。
#書式指定の例:桁数の指定
score=3.25
print("あなたの得点は{score:.1f}点です") #小数第一位まで表示
score=4.826
print("あなたの得点は{:.3g}点です".format(score)) #有効数字を3桁にして表示#有効数字を3桁にして表示@
あなたの得点は3.2点です
あなたの得点は4.83点です
練習問題
では、これまでの内容をもとに次のプログラムを作ってみましょう!
- 名前、年齢を入力すると、”〇〇歳の〇〇さんであってますか?”と出力されるプログラム
- 3.58と8.492を掛けた値を有効数字を考慮して出力するプログラム
解答例※あくまで一例です。
(1)
name = input("名前を入力して下さい>>")
age = input("年齢を入力してください>>")
print("{age}歳の{name}さんであってますか?")
名前を入力して下さい>>チャーリー
年齢を入力してください>>33
33歳のチャーリーさんであってますか?
(2)
print("{:.3g}".format(3.58*8.492))
30.4
最後に
この記事では、Pythonでのformat関数及びf-stringsの扱い方について解説しました。
もっとPythonを学びたい!という方はこちらの記事でPythonの基本的な構文を学習することが出来ますのでぜひ立ち寄ってみてください!