Pythonにおける文字列操作は非常に柔軟で、その中でもformat
メソッドは文字列のフォーマットに強力な機能を提供します。この記事では、format
メソッドの基本的な使い方から高度な応用まで、コード例を交えながら詳しく解説します。
基本的なフォーマット
format
メソッドは、文字列内にプレースホルダーとなるブレース {}
を配置し、その後にformat
メソッドを適用することで、値を挿入できます。基本の構文は以下の通りです。
"テキスト {} テキスト".format(値)
具体的な例を見てみましょう。
name = "John" age = 30 sentence = "私の名前は {} で、年齢は {} 歳です。".format(name, age) print(sentence)
このコードは "私の名前は John で、年齢は 30 歳です。"
という文字列を生成し、それを表示します。
インデックスを使用したフォーマット
format
メソッドでは、プレースホルダーに対してインデックスを指定することもできます。これにより、値を挿入する順番を制御できます。
name = "Alice" age = 25 sentence = "私の名前は {1} で、年齢は {0} 歳です。".format(age, name) print(sentence)
このコードは "私の名前は Alice で、年齢は 25 歳です。"
という文字列を生成します。{1}
と {0}
の順番で指定された変数が挿入されています。
キーワード引数を使用したフォーマット
format
メソッドでは、キーワード引数を使用してもフォーマットできます。これにより、より読みやすく、変更しやすいコードを書くことができます。
name = "Bob" age = 35 sentence = "私の名前は {n} で、年齢は {a} 歳です。".format(n=name, a=age) print(sentence)
このコードも "私の名前は Bob で、年齢は 35 歳です。"
という文字列を生成します。{n}
と {a}
の部分にキーワード引数で指定した値が挿入されています。
値のフォーマット指定
format
メソッドでは、値を特定のフォーマットで表示することも可能です。例えば、小数点以下2桁まで表示する場合や、桁区切りを入れる場合などがあります。
price = 1500.5 formatted_price = "価格: {:.2f} 円".format(price) print(formatted_price)
このコードは "価格: 1500.50 円"
という文字列を生成します。:.2f
は小数点以下2桁まで表示するフォーマット指定です。
アライメントと幅の指定
format
メソッドでは、文字列の幅やアライメントも指定できます。例えば、右寄せ、左寄せ、中央寄せなどが可能です。
product = "Computer" price = 1200 formatted_product = "{:<15} {:>10}円".format(product, price) print(formatted_product)
このコードは "Computer 1200円"
という文字列を生成します。{:<15}
は15文字の幅で左寄せ、{:>10}
は10文字の幅で右寄せを表しています。
文字列の重ね合わせ
format
メソッドでは、文字列を指定した回数だけ重ね合わせることもできます。
title = "Python" formatted_title = "{:*^20}".format(title) print(formatted_title)
このコードは "*******Python*******"
という文字列を生成します。{:*^20}
は20文字の幅で、*
で埋めつくし、文字列を中央寄せにするフォーマット指定です。
f-stringsの利用
Python 3.6以降では、f-strings(フォーマット済み文字列リテラル)が利用できます。これは文字列の中に変数や式を直接埋め込むことができる便利な機能です。
name = "Charlie" age = 28 sentence = f"私の名前は {name} で、年齢は {age} 歳です。" print(sentence)
このコードは "私の名前は Charlie で、年齢は 28 歳です。"
という文字列を生成します。f-stringsを使用することで、より簡潔に文字列を構築できます。
エスケープ文字としての{}
format
メソッドを利用する際、波括弧 {}
自体を文字列に含めたい場合は、二重に書くことでエスケープします。
text = "エスケープ文字: {{}}" formatted_text = text.format() print(formatted_text)
このコードは "エスケープ文字: {}"
という文字列を生成します。波括弧がエスケープされているため
、format
メソッドがそのまま実行されます。
結言
format
メソッドはPythonにおいて文字列を効果的にフォーマットするための重要な手段です。様々なフォーマット指定やオプションを活用することで、可読性の高いコードを書くことができます。また、f-stringsを使用することで、よりシンプルで直感的な文字列の構築が可能です。是非、様々なケースでformat
メソッドを実践しながら、その使い方をマスターしてください。