【Python】formatメソッドとは?基本 + 応用をまとめて解説!

Pythonで変数の内容を出力するにはどうすればいいの?
formatメソッドで変数の内容を出力する方法がいまいちわからない…

テストや検証で変数の中身を確認したいことはよくあります。Pythonで変数の内容を出力するには、print関数でformatメソッドを使用します。

今回は、Pythonにおけるformatメソッドの使い方について、やさしく解説していきたいと思います。formatメソッドを活用出来ると、文字列の出力を行う際にとても重宝します。

この記事はこんな人のために書きました

  • Pythonで変数の中身を出力させたい
  • formatメソッドの使い方をよく知りたい

今回はPythonのformatメソッドの基本から、実践的な内容に関してもわかりやすく解説していきます。

本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

なお、その他のPythonの記事についてはこちらにまとめています。

目次

Pythonのformatメソッドとは

formatメソッドは、文字列内に変数を埋め込むときに使用するメソッドです。

主にprint関数で文字列を出力するときに使用される事が多いです。

たとえば、


「It’s ◯◯ all day today.」

という文字列の◯◯の箇所に変数の値を埋め込みたい場合などに使用します。

formatメソッドの注意点

注意しなければいけないのが、formatメソッドはPython2.6以降でしか使うことが出来ません。

Python2.6以前のバージョンでは、C言語のような「%演算子」を使わなければならないので気をつけましょう!

Pythonのformatメソッドの基本的な使い方

次に、Pythonのformatメソッドの基本的な使い方について解説します。

書き方

formatメソッドの基本的な構文はこのようになっています。

'str1{}str2'.format(var)
  • 文字列str1と文字列str2の間に「{}」があります。
  • 「{}」にformatメソッドの引数である変数varが埋め込まれます。

基本的な使い方

では実際にformatメソッドを使ってみましょう!

こちらのサンプルコードを見てみましょう。

サンプルコード:

myvar = 2018
print("This is the {}th year.".format(myvar))

実行結果:

This is the 2018th year.

このサンプルコードでは、変数myvarが格納している値である「2018」を文字列の中に埋め込んでみました。ご覧いただけるように、「This is the」と「th year」の間の「{}」に2018が含まれています。

このサンプルコードでは、formatメソッドの引数を一つだけ設定しました。

複数の変数を指定する方法

複数の変数を同時に出力したい場合は、このようにコードを書きます。

サンプルコード:

year = 2018
month = 'september'
day = '4th'
print('Today is {0} of {1} {2}'.format(day,month,year))

実行結果:

Today is 4th of september 2018

このサンプルコードでは、formatメソッドに三つの引数を指定しました。指定する引数のうち、yearのみがint型、その他2つは文字列型です。

変数の型に関係なく埋め込みは「{}」内に行われます。

「{}」内に指定した番号はformatメソッドの引数の番号です。このように番号を指定することで、変数の代入の順番を管理することが出来ます。

formatメソッドは「{}」が空でも問題なく作動します。その場合は、formatメソッド内の引数の順番通りに出力されることになります。

Pythonのformatメソッドを使いこなすための6つの使い方

ここからは、Pythonのformatメソッドを使いこなすための、以下の6つの使い方を解説します。

  • 桁区切りを追加
  • 小数点以下の桁を指定
  • パーセントを表示
  • 表示位置を変更
  • ゼロ埋めして桁数を合わせる
  • 文字列にリストを表示する

全てサンプルコード付きで解説しているので、1つずつコードを実行しながら見ていくのがおすすめです!

1.桁区切りを追加

数字を扱う場合、桁区切りして表示したいときもありますよね。たとえば、100000を100,000のように表示するケースです。

このような場合は、次のように指定します。

サンプルコード:

num = 1222333
result = "{:,}".format(num)

print(result)

実行結果:

1,222,333

変数numに入れた数字が、3桁区切りに変更されていますよね。このように、formatの前に「{:,}」を指定するだけで、簡単に桁区切りできます。

2.小数点以下の桁を指定

数値の小数点以下の桁を指定したいときもありますよね。たとえば、24.567を24.6のように表示するケースです。

このような場合は、次のように指定します。

サンプルコード:

num = 1234.567
result = "{:.2f}".format(num)

print(result)

実行結果:

1234.57

変数numに入れた数字が、小数点以下の桁数が2桁になっていますよね。これは、「{:.2f}」と指定しているからです。

  • {:.2f}:2桁
  • {:.3f}:3桁


のように数値を変更すれば、小数点以下の桁数を変更できます。

3.パーセントを表示

数値をパーセントで表示したいときもありますよね。たとえば、0.25を25%のように表示するケースです。

このような場合は、次のように指定します。

サンプルコード:

num = 0.2542
result = "{:%}".format(num)

print(result)

実行結果:

25.420000%

ただ、実行すると「25.420000%」になってしまっています。これは、デフォルトの小数点が6桁に指定されているからです。

25.42%のように表示する場合は、次のように指定します。

サンプルコード:

num = 0.2542
result = "{:.2%}".format(num)

print(result)

実行結果:

25.42%

4.表示位置を変更

文字列などを表示する際、位置を指定する方法もあります。たとえば、「abc」を「   abc」と表示したり、「abc   」と表示するようなケースです。

このような場合は、次のように指定します。

サンプルコード:

str1 = 'Hello'
str2 = 'world'
str3 = 'Samurai'
print('{0:<10} {1:^10} {2:>10}'.format(str1,str2,str3))

実行結果:

Hello        world       Samurai

このサンプルコードの 「{}」の中には、左側にはformatメソッドの引数の順番が、「:」から右側は埋め込み位置を指定されています。

1番目に埋め込まれた変数str1の書式は「{0:<10}」なので、10の幅を取り、左詰めに出力されました。

2番目に埋め込まれた変数str2の書式は「{0:^10}」なので、10の幅を取り、中央に出力されました。

3番目に埋め込まれた変数str3の書式は「{0:>10}」なので、10の幅を取り、右詰めに出力されました。

以下に使用した型の一覧をまとめておきます。

説明
^指定幅で中央に出力
<指定幅で左詰めに出力
>指定幅で右詰めに出力

5.ゼロ埋めして桁数を合わせる

数値をゼロで埋めて、桁数をそろえたいときもありますよね。たとえば、100を00000100のように0を埋めるケースです。

このような場合は、次のように指定します。

サンプルコード:

num = 123
result = '{0:05d}'.format(num)

print(result)

実行結果:

00123

123の数値が、00123のように0(ゼロ)を入れて埋められていますよね。このサンプルでは、「{0:05d}」を指定しているため、「5桁以内の数値でゼロ埋め」がされています。

以下のように数値を変更すると、ゼロ埋めの桁数を変更できます。合わせて覚えておきましょう。

  • 4桁の場合:{0:04d}
  • 10桁の場合:{0:010d}


のように間に入れる数値を変更するだけで、ゼロ埋めの桁数を変更できるので、合わせて覚えておきましょう。

6.文字列にリストを表示する

これまで1つの文字列、数値をformatメソッドで変換して表示する方法を解説してきました。

ただ、リスト型やタプル型などに入っている値を、埋め込みたいときもありますよね。

たとえば、次のようなケースです。

サンプルコード:

mylist = ["apple", "melon", "strawberry", "orange", "peach"]
print('I like {0[0]}, {0[2]} and {0[4]}'.format(mylist))

実行結果:

I like apple, strawberry and peach

このサンプルコードでは、mylist内の三つの要素を埋め込んでみました。

先ほどとは違い、「{}」の中身は空ではありません。「{}」の中の「0」はformatメソッドの何番目の引数であるか、「[0]や[2]」は要素のインデックスを表しています。

このように、シーケンス型の埋め込みも簡単に出来ましたね。

まとめ

今回はPythonのformatメソッドの使い方について、解説しました。

まずは基本的な使い方を試してみて、formatメソッドの使い方を覚えるのがおすすめです。

「formatメソッドを使いこなすための6つの使い方」の中で解説した内容は、「こんなことができるのか!」とまずは覚えておくだけでもOKです。

実際にコードを書いて悩んだときに、「そういえば、formatメソッドにいろいろ方法があったな…!」と思いだせれば、後はググって調べるだけで済むからです。

なお、今Pythonを学習している方は以下の記事もどうぞ。

はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。

復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。

Python 入門完全攻略ガイド

この記事を書いた人

イタリア在住15年目の22歳です。イタリアの大学で情報科学&応用数学を学んでいます。主にJavaScriptやPythonについての記事を書いたりしています。

目次