mei_13のPython講座 ロゴ

【Pythonコラム】Pythonのformat()メソッド:文字列を美しく飾る魔法




Pythonのformat()メソッド:文字列を美しく飾る魔法

Pythonを学んでいる皆さん、文字列を扱う際に、変数の中身を埋め込んだり、表示形式を整えたりしたいと思ったことはありませんか? そんな時に非常に便利なのが、Pythonのformat()メソッドです。 今回は、このformat()メソッドについて、初心者の方にも分かりやすく解説します。

format()メソッドとは?

format()メソッドは、文字列の中に埋め込みたい値を、指定した書式で挿入することができるメソッドです。 文字列の中に {} で囲まれたプレースホルダー(置換フィールド)を用意し、format()メソッドの引数に値を渡すことで、プレースホルダーがその値で置き換えられます。

基本的な使い方

まずは、最も基本的な使い方を見てみましょう。

name = "太郎"
age = 20

message = "私の名前は{}で、年齢は{}歳です。".format(name, age)
print(message) # 出力:私の名前は太郎で、年齢は20歳です。

この例では、nameageという変数の中身を、messageという文字列に埋め込んでいます。 format()メソッドの引数の順番と、{}の順番が対応していることに注目してください。

インデックス指定

プレースホルダーの中にインデックスを指定することで、format()メソッドの引数の順番に関係なく値を埋め込むことができます。

message = "私の名前は{1}で、年齢は{0}歳です。".format(age, name)
print(message) # 出力:私の名前は太郎で、年齢は20歳です。

この例では、{0}age{1}nameに対応しています。

キーワード引数

インデックスの代わりにキーワード引数を使うこともできます。

message = "私の名前は{name}で、年齢は{age}歳です。".format(name="花子", age=25)
print(message) # 出力:私の名前は花子で、年齢は25歳です。

この方法では、プレースホルダーにキーワードを指定し、format()メソッドの引数でそのキーワードに対応する値を指定します。 引数の順番を気にする必要がないので、コードが読みやすくなります。

書式指定

format()メソッドの真骨頂は、値の表示形式を細かく指定できることです。 プレースホルダーの中でコロン : を使うことで、様々な書式指定が可能です。

  • 数値の書式指定

    • d: 整数 (decimal)
    • f: 浮動小数点数 (fixed-point)
    • e: 指数表記 (exponent notation)
    • %: パーセント表示
    pi = 3.1415926535
    
    print("円周率: {:.2f}".format(pi))   # 出力:円周率: 3.14 (小数点以下2桁)
    print("円周率: {:.3e}".format(pi))   # 出力:円周率: 3.142e+00 (指数表記、小数点以下3桁)
    print("正答率: {:.1%}".format(0.75))  # 出力:正答率: 75.0% (パーセント表示、小数点以下1桁)
    print("整数: {:d}".format(10))        # 出力:整数: 10
    
  • 文字列の書式指定

    • <: 左寄せ
    • >: 右寄せ
    • ^: 中央寄せ
    • s: 文字列
    word = "hello"
    
    print("{:<10}".format(word))  # 出力:hello     (左寄せ、10文字分の幅)
    print("{:>10}".format(word))  # 出力:     hello (右寄せ、10文字分の幅)
    print("{:^10}".format(word))  # 出力:  hello   (中央寄せ、10文字分の幅)
    
  • 桁区切り

    数値を桁区切りで表示することもできます。

    number = 1234567890
    
    print("{:,}".format(number))  # 出力:1,234,567,890
    

f文字列 (f-string)

Python 3.6以降では、f文字列と呼ばれる、より簡潔に文字列のフォーマットができる機能が導入されました。 f文字列は、文字列の先頭にfを付け、プレースホルダーの中に直接変数を記述します。

name = "次郎"
age = 30

message = f"私の名前は{name}で、年齢は{age}歳です。"
print(message) # 出力:私の名前は次郎で、年齢は30歳です。

pi = 3.1415926535
print(f"円周率: {pi:.2f}") # 出力:円周率: 3.14

f文字列は、format()メソッドよりもコードが簡潔になるため、非常に人気があります。

まとめ

format()メソッドは、文字列を柔軟かつ美しく整形するための強力なツールです。 基本的な使い方から、書式指定、f文字列までを理解することで、より表現力豊かなプログラムを書くことができるようになります。 ぜひ、色々な例を試して、format()メソッドをマスターしてください!



< f文字列
コラム一覧に戻る
str.replace() >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!