【Python入門】指定した形式に文字列をフォーマットする方法を解説

  • 2025.06.13
       
【Python入門】指定した形式に文字列をフォーマットする方法を解説

Pythonには、文字列や数値をフォーマットするための記述方法として、組み込み関数やメソッドなどの様々な方法が用意されています。

今回の記事では、数ある方法の内の1つである 「formatメソッド」 の使い方について解説をしていきたいと思います!

基本的な使い方から詳しい活用方法まで紹介していきますので、ぜひ参考にしてみてくださいね。

Pythonのformatメソッドとは?

formatメソッドは、Python2.6以降に使用可能となった文字列メソッドの内の1つです。
変数や特定の値を、任意の書式 (フォーマット) で文字列内に埋め込む際に使用します。

文字列の内容を、変数を使って動的に変更したい場合などに活用でき、表示位置の調整やゼロ埋めなどの書式指定も行うことができます。

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

まずは、formatメソッドの基本的な使い方から解説していきたいと思います。

基本構文と使い方

formatメソッドを使用する際の基本構文は、以下のように記述します。

【基本構文】

"文字列 {置換フィールド} 文字列".format(置換する値)

上記のように、文字列内の任意の場所に 「{} (波かっこ)」 で囲まれた置換フィールドを埋め込み、置換したい値を formatメソッドの引数に渡します。

以下のサンプルコードで、実際の動きを見てみましょう。

【サンプルコード】

name = "山田太郎"

showStr = "彼の名前は、{}です。".format(name)

print(showStr)

【実行結果】

彼の名前は、山田太郎です。

{}で囲った場所に、変数 「name」 の値が表示されているのが分かりますね。
このように、formatメソッドを使って文字列に値を埋め込むことができます。

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

formatメソッドを使用して、複数の値を文字列に埋め込むこともできます。
その場合は、埋め込みたい値の数だけ{}を文字列内に記述します。

【サンプルコード】

name = "山田太郎"
age = 17
job = "高校生"

showStr = "彼の名前は、{0}です。年齢は{1}歳で、{2}です。".format(name, age, job)

print(showStr)

【実行結果】

彼の名前は、山田太郎です。年齢は17歳で、高校生です。

{}内に記述された数字は、インデックス番号です。
0から始まり、引数の左から順番に0、1、2…と対応しています。

上記のサンプルコードのように、置換フィールドの順番が引数と同じである場合は、インデックス番号を省略して記述することもできます。

【サンプルコード】

name = "山田太郎"
age = 17
job = "高校生"

showStr = "彼の名前は、{}です。年齢は{}歳で、{}です。".format(name, age, job)

print(showStr)

【実行結果】

彼の名前は、山田太郎です。年齢は17歳で、高校生です。

formatメソッドを使いこなすための6つの活用法

formatメソッドでは、フォーマット指定子を使用して埋め込む値の書式を細かく指定することができます。

具体的には、以下のような指定が可能です。

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

また、文字列や数値などに限らず、リストの値を埋め込むことも可能です。
それぞれ、順に見ていきましょう。

数値に桁区切りを追加する

例えば金額表示などの際に、値を桁区切りして表示したいケースもあるかと思います。
その場合は、{}内に 「, (カンマ)」 を記述して書式を指定します。

書式指定の際は、以下の順で内容を記述しましょう。

【書式の指定】

{インデックス番号:書式指定}

桁区切りをする場合で記述すると、「{0:,}」 といった具合になります。
先ほど解説したように、インデックス番号はケースにより省略可能のため、「{:,}」 のみでも指定可能です。

以下のサンプルコードで、実際の動きを見てみましょう。

【サンプルコード】

price = 10000

showStr = "この商品の値段は {:,}円です。".format(price)

print(showStr)

【実行結果】

この商品の値段は 10,000円です。

無事に、桁が区切られた状態で表示することができました。
このように、formatメソッドを使用することで書式を簡単に変更することもできます。

小数点以下の桁を指定する

浮動小数点数を表示する際に、小数点以下の桁を任意で指定したい場合には、「. (ピリオド)」 の後に整数で桁数を指定します。

【書式の例】

{:.2f}

f は、表示する際の型の指定です。(表示型の指定は、浮動小数点数以外にも使用できます)
指数表記する場合は e または E、固定小数点表記の場合は f または F を指定します。

サンプルコードで表示の違いを見てみましょう。

【サンプルコード】

num = 123.4567

showF1 = "{:.2f}".format(num)
showF2 = "{:.3f}".format(num)

showE1 = "{:.2e}".format(num)
showE2 = "{:.3e}".format(num)

print(showF1)
print(showF2)

print(showE1)
print(showE2)

【実行結果】

123.46
123.457
1.23e+02
1.235e+02

数値をパーセントで表示する

数値をパーセントで表示したい場合は、「% (パーセント)」 を {}内に記述します。
パーセント表示の場合、指定した値は 100倍した上で小数点表記で表示されます。

以下のサンプルコードで見てみましょう。

【サンプルコード】

num = 0.25

showP = "{:%}".format(num)

print(showP)

【実行結果】

25.000000%

結果を見ると分かると思いますが、%のみの指定の場合はデフォルトで小数点以下6桁が表示されるようになっています。

表示する桁数を変更したい場合は、先ほどと同じようにピリオドの後に整数で桁数を指定します。

【サンプルコード】

num = 0.25

showP = "{:.0%}".format(num)

print(showP)

【実行結果】

25%

文字列の表示位置を指定する

文字列を表示する際の幅や、文字の表示位置を任意で指定することができます。

表示位置はそれぞれ、「< (左寄せ)」、「^ (中央寄せ)」、「> (右寄せ)」 のいずれかの記号で指定できます。
位置指定の記号の後ろに、何文字分の表示幅を確保するかを数値で指定します。

【書式の例】

{:^10}

デフォルトの表示位置は左寄せです。

以下のサンプルコードで表示の違いを見てみましょう。

【サンプルコード】

str = "sample"

showStr1 = "【{:<10}】".format(str)
showStr2 = "【{:^10}】".format(str)
showStr3 = "【{:>10}】".format(str)

print(showStr1)
print(showStr2)
print(showStr3)

【実行結果】

【sample    】
【  sample  】
【    sample】

指定の内容によって、文字の表示位置が変化しているのが分かりますね。

文字列の幅については、指定の数値が文字数を上回る場合は上記のように余白がスペースで表示され、下回る場合はそのまま文字数分だけ表示されます。
指定した幅が文字列より小さくても、途中で文字が切れることはありません。

なお、余談ですが、位置指定の記号を記述する前に任意の文字を指定することで、余白をスペース以外の文字で埋めることもできます。

【サンプルコード】

str = "sample"

showStr = "【{:.<10}】".format(str)

print(showStr)

【実行結果】

【sample....】

ゼロ埋め(ゼロパディング)で桁数を合わせる

数値を表示する際に、桁数を揃えるために余白をゼロで埋めたいケースも中にはあるかと思います。

先ほど、文字列の幅を指定したときと同じように、表示したい桁数を数値で指定し、その前に0を付けて記述することで、値をゼロ埋めして表示することができます。

【書式の例】

{:03d}

以下のサンプルコードで見てみましょう。

【サンプルコード】

num = 123

showNum = "{:010d}".format(num)

print(showNum)

【実行結果】

0000000123

表示する値が 3桁であるのに対し、書式に指定している桁数は 10桁となっているため、残りの桁数分をゼロ埋めして表示されています。

なお、桁数のみを記述した場合には、文字列と同様に余白をスペースで埋めた状態で表示されます。
文字列と同様に表示位置を変更することも可能で、数値の場合はデフォルトは右寄せとなっています。

リストの値を文字列の中に組み込んで表示する

最後に、formatメソッドを使用してリストやタプルなどのシーケンス型の変数を文字列に埋め込む方法を解説します。

リストなどの値を文字列に組み込む場合は、変数を使って要素にアクセスする時と同じように、指定したい要素のインデックス番号を {}内に記述します。

【書式の例】

{0[1]}

上記の例の場合、0番目の引数に指定した変数の中から、1番目の要素を指定したことになります。

実際の動きを、以下のサンプルコードで見てみましょう。

【サンプルコード】

fruitList = ["りんご", "みかん", "いちご"]
priceList = [200, 300, 500]

showStr = "{0[0]}と{0[1]}を買いました。合計金額は{1[2]}円です。".format(fruitList, priceList)

print(showStr)

【実行結果】

りんごとみかんを買いました。合計金額は500円です。

このように、指定するインデックス番号の違いによって、変数や要素を使い分けることができます。

まとめ

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

変数を文字列に組み込む方法は、デバッグ時の内容確認などでも役に立つ便利な機能となっています。
書式指定は設定できる項目が多いため、使い慣れないうちは戸惑うことも多いかと思いますが、何度も活用してマスターしましょう!

Pythonの勉強方法は?

書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。

ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。

プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。

<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~

このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。

     

Programmingカテゴリの最新記事