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

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

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

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

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

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

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

なお、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 入門完全攻略ガイド

Writer

Kotono

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

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close