Pythonのformat()の使い方完全ガイド!文字列フォーマットの基本と応用
生徒
「Pythonで数字や文字をキレイに並べて表示したいです。方法はありますか?」
先生
「ありますよ。format()を使えば、文字列の中に変数を入れたり、見た目を揃えたりできます。」
生徒
「具体的にはどう書くんですか?パソコン初心者にもわかるように教えてください!」
先生
「では最初に基本形から順に、丁寧に解説していきますね。」
1. format()って何?
format()は、文章の中に数値や文字をそのまま埋め込んだり、表示の形を整えたりするための便利な仕組みです。たとえば、「名前を入れたい」「数字をきれいに揃えたい」といった場面で役に立ちます。単なる文字の結合よりも自然に読みやすく書けるので、初心者でもすぐに実践できます。
name = "りん"
msg = "こんにちは、{}さん!".format(name)
print(msg)
こんにちは、りんさん!
このように、{}の部分に変数がそのまま入ってくれるため、「文字+変数」を何度も組み合わせるよりもずっと便利で見やすいコードになります。
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()を理解しておくと応用が効きます。
まとめ
Pythonにおけるformat()関数は、初心者が文字列を柔軟に扱いたいときに非常に便利な機能です。
本記事では、基本的な{}による変数挿入から、引数の順番指定({0}や{1})、
キーワード引数での明示的な指定、そして数値のゼロ埋めや桁数の制御、さらには左右の揃え方まで、
Pythonの文字列フォーマットの重要ポイントを一通り網羅しました。
実務では、報告書の出力やログメッセージの整形、データの見栄えを整える用途において、
format()の知識は不可欠です。
特に:05や:.2fといった書式指定子の活用は、数値表示の精度と視認性を向上させます。
また:>10や:<10などの寄せ指定は、レポート出力において整然とした印象を与えることができます。
辞書やリストを使って動的にデータを展開できる点も、Pythonらしい柔軟性です。
たとえばテンプレートに対して**辞書や*リストを用いてデータを渡すことで、
再利用性の高いコードを実現できます。
また、複数のフォーマット指定(桁数・桁揃え・小数点処理など)を組み合わせることで、
より実用的な文字列出力が可能となります。
これらの機能は、初心者が「データをただ表示する」段階から、
「見やすく整形して表示する」という段階へ進むための大きなステップになります。
そして、後に学ぶf文字列の理解にもつながる基礎力となるため、
まずはformat()を使いこなすことが、Pythonプログラミング上達の近道といえるでしょう。
サンプルコードで再確認
# 総まとめとしての実用例
user = {"name": "ゆうき", "age": 25, "login": 12}
price = 380.5
quantity = 3
print("ユーザー:{name} さん({age}歳)".format(**user))
print("ログイン回数:{:03}回".format(user["login"]))
print("単価:{:07.2f}円 × 数量:{:02}個 = 合計:{:08.2f}円".format(price, quantity, price * quantity))
このようにformat()を使えば、数字の桁数や変数の順番、整列まですべて思い通りに整えることができます。
生徒
「先生、format()ってこんなに便利だったんですね!最初はカッコが多くて混乱したけど、いろんな使い方ができてびっくりしました。」
先生
「そうですね。文字列フォーマットを使いこなすと、Pythonの表現力が一気に広がりますよ。」
生徒
「特にゼロ埋めとか桁数の指定、小数の丸めとかは、画面出力をきれいに整えるときに使えそうです!」
先生
「まさにその通りです。ログやレポートを見やすく整えることで、プログラムの信頼性も上がりますからね。」
生徒
「辞書やリストからデータを取り出すやり方も便利でした!これなら色々なデータ形式にも対応できますね!」
先生
「その調子で、次はf文字列やformat_map()も勉強していきましょう。」