ARMtech

Python入門:format

format関数

format関数は、文字列の中に変数を割り込んで入れたいときに利用できる関数です。

例えば、「君の得点は〇〇だ。」という文字列の〇〇の中に変数scoreを参照したい!といった場合に使えます。
変数scoreを文字列に変換して連結すれば同じようなことができますが、format関数を使うとよりシンプルに書くことができます。

format関数の使い方
"文字列{}文字列".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関数は、キーワード引数を指定することができます。

キーワード引数の指定方法
"文{キーワード1}字{キーワード2}列".format(キーワード1=引数,キーワード2=引数)

キーワード引数は上のように使います。

name="チャーリー"

age=33

interest="スキー"

print("私の名前は{n}\n年齢は{a}\n趣味は{i}です。".format(n=name,a=age,i=interest))

実行結果

私の名前はチャーリー
年齢は33
趣味はスキーです。

f-strings

f-stringsを使うと、format関数よりも簡単に書くことができます。

f-stringsの書き方
f"文字列{変数}文字列"

上のように書くことによって、置換フィールドの中に直接変数を指定することができます。
また、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点です

練習問題

では、これまでの内容をもとに次のプログラムを作ってみましょう!

  1. 名前、年齢を入力すると、”〇〇歳の〇〇さんであってますか?”と出力されるプログラム
  2. 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の基本的な構文を学習することが出来ますのでぜひ立ち寄ってみてください!

<   >
© 2024 ARMtech