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)で使えるメソッドです。ほかの関数・メソッドとあわせて確認したい方は、次の一覧ページをご覧ください。

プログラミング学習に興味がある方は、まずは無料体験会へ

無料体験会・お申し込みはこちら