Pythonのformat()の使い方完全ガイド!文字列フォーマットの基本と応用
生徒
「Pythonで数字や文字をキレイに並べて表示したいです。方法はありますか?」
先生
「ありますよ。format()
を使えば、文字列の中に変数を入れたり、見た目を揃えたりできます。」
生徒
「具体的にはどう書くんですか?パソコン初心者にもわかるように教えてください!」
先生
「では最初に基本形から順に、丁寧に解説していきますね。」
1. format()って何?
format()
というのは、文字列の中に変数(文字や数字)をきれいに入れられる機能です。見た目を揃えたり、自動で数字を丸めたりできる、とても便利な方法です。
2. 基本の使い方:{}に変数を入れる
まずは簡単な例から。{}(波かっこ)を使って、そこに後から値を入れます。
name = "たろう"
age = 20
msg = "こんにちは、{}さん。{}歳ですね。".format(name, age)
print(msg)
実行結果:
こんにちは、たろうさん。20歳ですね。
このように{}の位置に
最初の引数(name
)と
2番目の引数(age
)が入ります。
3. {番号}を使って順番を変える方法
{}に番号を入れると、引数の順番を自由に変えられます。
msg = "{1}さん、{0}歳ですね。".format(age, name)
print(msg)
実行結果:
たろうさん、20歳ですね。
ここでは{1}
がname
で、{0}
がage
を指します。
4. 名前つきでわかりやすく指定する方法
変数に名前をつけて、{名前}形式で入れられます。読みやすいコードになります。
msg = "今日は{name}さんが{count}回ログインしました。".format(name="さくら", count=3)
print(msg)
実行結果:
今日はさくらさんが3回ログインしました。
5. 数字のゼロ埋めや幅指定など応用編
:05
と書くと、数字を5桁にして先頭を0
で埋めます。ゼロ埋めと呼ばれます。
num = 7
print("No.{:03}".format(num))
print("No.{:05}".format(num))
実行結果:
No.007
No.00007
これで番号をきれいに並べられます。
6. 少数を丸める:小数点以下の桁数指定
:.2f
のようにすると、小数点以下2桁で表示されます。
price = 12.3456
print("価格は{:.2f}円です".format(price))
実行結果:
価格は12.35円です
丸めやf
はfloat(少数)の意味です。:.xf
でx桁まで指定できます。
7. 左右の幅を揃える:幅指定
:>10
は右寄せで幅10、
text = "Python"
print("|{:>10}|".format(text))
print("|{:<10}|".format(text))
print("|{:^10}|".format(text))
実行結果:
| Python|
|Python |
| Python |
表やレポートをキレイに表示したいときに便利です。
8. 複数のフォーマットを組み合わせる
先ほどのゼロ埋めや少数桁などを組み合わせることができます。
price = 3.1
qty = 4
msg = "単価{:05.2f}円 × 数量{:03} = 合計{:07.2f}円".format(price, qty, price*qty)
print(msg)
実行結果:
単価003.10円 × 数量004 = 合計012.40円
9. 辞書やリストを使ってformat
辞書(キーと値のセット)やリストを使って、わかりやすく値を渡せます。
data = {"name":"花子", "score":95}
print("名前:{name}, 得点:{score}".format(**data))
# リストの場合
vals = [1,2,3]
print("{0},{1},{2}".format(*vals))
実行結果:
名前:花子, 得点:95
1,2,3
10. format()のメリットと使いどころ
format()
は、プログラム初心者が「きれいな文字列」「見た目を揃えたい」「桁数を指定したい」と思ったときにぴったりの方法です。文字列フォーマットを覚えると、プログラミングでレポートや表を作るときに役立ちます。
また、f文字列
(f"...{変数}..."
)という新しい書き方もありますが、まずはformat()
を理解しておくと応用が効きます。