Pythonのformat()メソッドとは?使い方・書式指定・f-stringとの違いを初心者向けに解説

Pythonのformat()メソッドは、文字列の中に変数や値を埋め込んだり、数値や文字列の表示形式を指定したりするためのメソッドです。
「文字列に変数を入れたい」「小数点以下の桁数を指定したい」「数値を3桁区切りで表示したい」といった場面で使われます。
この記事では、Python初心者向けにformat()メソッドの基本的な使い方から、書式指定、複数の値を埋め込む方法、f-stringとの違いまで解説します。
Pythonのformat()メソッドとは?
format()メソッドは、文字列の中に値を埋め込むために使います。
基本的な書き方は次の通りです。
"{}".format(値)
例えば、名前を文字列に埋め込むことができます。
name = "田中"
message = "こんにちは、{}さん".format(name)
print(message)
実行結果:
こんにちは、田中さん
{}の部分にformat()へ渡した値が入ります。
format()メソッドの基本的な使い方
文字列を埋め込む
name = "山田"
print("私の名前は{}です。".format(name))
実行結果:
私の名前は山田です。
{}が値を入れる場所になります。
数値を埋め込む
format()は文字列だけでなく、整数や小数などの数値にも使えます。
age = 20
print("年齢は{}歳です。".format(age))
実行結果:
年齢は20歳です。
複数の値をformat()で埋め込む
format()には複数の値を渡すこともできます。
name = "田中"
age = 25
print("{}さんは{}歳です。".format(name, age))
実行結果:
田中さんは25歳です。
{}は左から順番に、format()で指定した値に置き換えられます。
{} → name
{} → age
format()の番号指定
{}の中に番号を指定することもできます。
name = "田中"
age = 25
print("{0}さんは{1}歳です。".format(name, age))
実行結果:
田中さんは25歳です。
0は最初の値、1は2番目の値を表します。
値の順番を入れ替える
番号を指定すると、値の順番を自由に変更できます。
name = "田中"
age = 25
print("{1}歳の{0}さん".format(name, age))
実行結果:
25歳の田中さん
このように、{1}と{0}を使うことで、format()に渡した順番とは異なる順序で表示できます。
format()でキーワード引数を使う
format()では、名前を付けて値を渡すこともできます。
print("{name}さんは{age}歳です。".format(name="田中", age=25))
実行結果:
田中さんは25歳です。
この方法は、複数の値を扱うときにコードが分かりやすくなります。
format()で小数点以下の桁数を指定する
format()を使うと、数値の表示形式を細かく指定できます。
例えば、小数点以下2桁まで表示する場合は次のように書きます。
price = 123.456
print("{:.2f}".format(price))
実行結果:
123.46
:.2fは「小数点以下2桁の浮動小数点数として表示する」という指定です。
小数点以下1桁にする
number = 3.14159
print("{:.1f}".format(number))
実行結果:
3.1
format()で3桁区切りにする
数値をカンマ区切りで表示することもできます。
number = 1000000
print("{:,}".format(number))
実行結果:
1,000,000
金額などを表示するときに便利です。
price = 2500000
print("価格:{:,}円".format(price))
実行結果:
価格:2,500,000円
format()でゼロ埋めする
数値の前に0を追加して桁数を揃えることもできます。
number = 5
print("{:03}".format(number))
実行結果:
005
例えば、番号を3桁で表示したい場合などに使えます。
for i in range(1, 6):
print("商品番号:{:03}".format(i))
実行結果:
商品番号:001
商品番号:002
商品番号:003
商品番号:004
商品番号:005
format()で文字列の位置を指定する
文字列の位置を指定することもできます。
左寄せ
print("{:<10}".format("Python"))
右寄せ
print("{:>10}".format("Python"))
中央寄せ
print("{:^10}".format("Python"))
<は左寄せ、>は右寄せ、^は中央寄せを意味します。
表形式でデータを表示するときなどに便利です。
format()で辞書の値を利用する
辞書をformat()に渡すこともできます。
user = {
"name": "田中",
"age": 30
}
print("{name}さんは{age}歳です。".format(**user))
実行結果:
田中さんは30歳です。
**userによって、辞書のキーと値をformat()のキーワード引数として渡しています。
format()とf-stringの違い
現在のPythonでは、文字列への値の埋め込みにはf-stringもよく使われます。
例えば、format()では次のように書きます。
name = "田中"
age = 25
print("{}さんは{}歳です。".format(name, age))
f-stringでは次のように書けます。
name = "田中"
age = 25
print(f"{name}さんは{age}歳です。")
f-stringのほうが変数を直接書けるため、比較的読みやすくなります。
format()とf-stringの使い分け
基本的には、現在のPythonで新しくコードを書く場合は、f-stringが便利です。
ただし、format()にもメリットがあります。
| 方法 | 特徴 |
|---|---|
format() |
Python 3以前からある文字列フォーマット方法 |
| f-string | 変数を直接書けて分かりやすい |
%演算子 |
古いPythonコードで見かける方法 |
例えば、複雑な書式指定を学ぶ場合にはformat()を知っておくと、Pythonの文字列フォーマットの仕組みを理解しやすくなります。
format()でよく使う書式指定
format()では、:の後ろに書式を指定します。
"{:書式}".format(値)
代表的なものを覚えておくと便利です。
| 書式 | 意味 | 例 |
|---|---|---|
{} |
通常表示 | 123 |
{:,.0f} |
3桁区切り・小数なし | 1,234 |
{:.2f} |
小数点以下2桁 | 123.46 |
{:03} |
3桁ゼロ埋め | 005 |
{:<10} |
左寄せ | Python |
{:>10} |
右寄せ | Python |
{:^10} |
中央寄せ | Python |
format()の注意点
format()を使うときは、{}の数と渡す値の数に注意しましょう。
例えば次のコードでは、
print("{} {}".format("Python"))
{}が2つあるのに値が1つしかないため、エラーになります。
一方、
print("{} {}".format("Python", "入門"))
なら問題ありません。
実行結果:
Python 入門
format()メソッドのまとめ
Pythonのformat()メソッドは、文字列の中に値を埋め込んだり、数値や文字列の表示形式を指定したりするためのメソッドです。
基本形は次の通りです。
"{}".format(値)
複数の値を扱うこともできます。
"{} {}".format(値1, 値2)
さらに、以下のような書式指定もできます。
"{:.2f}".format(3.14159)
"{:,}".format(1000000)
"{:03}".format(5)
現在のPythonでは、文字列への変数埋め込みにはf-stringがよく使われます。しかし、format()はPythonの文字列フォーマットを理解するうえで重要なメソッドです。
まずは、
name = "Python"
print("こんにちは、{}!".format(name))
のような基本形から使ってみるとよいでしょう。
あわせて読みたい
format()は、Pythonの組み込み関数・文字列(str)で使えるメソッドです。ほかの関数・メソッドとあわせて確認したい方は、次の一覧ページをご覧ください。





