文字列のフォーマットは、文字列を動的に生成するための強力なツールです。Pythonでは、複数の方法を用いて文字列のフォーマットを行うことができます。これにより、変数や計算結果を文字列内に埋め込むことが容易になります。代表的な方法には、旧スタイルの%
演算子、str.format()
メソッド、そしてPython 3.6以降で導入されたf文字列(フォーマット済み文字列リテラル)があります。それぞれの方法を理解し、使いこなすことで、より柔軟で読みやすいコードを書くことができます。
※初心者向けの13冊のPython独学書
1. Python3における文字列のフォーマット
Pythonでは、文字列をフォーマットするための方法がいくつかあります。ここでは、代表的な3つの方法を紹介します。
- 旧スタイルのフォーマット(%演算子)
- str.format()メソッド
- f文字列(フォーマット済み文字列リテラル)
1.1. 旧スタイルのフォーマット(%演算子)
これはC言語に似たスタイルで、%演算子を使用して文字列をフォーマットします。
name = "太郎" age = 20 formatted_string = "名前: %s, 年齢: %d" % (name, age) print(formatted_string)
1.2. str.format()メソッド
この方法は、Python 2.7以降で導入されたもので、{}をプレースホルダーとして使用します。
name = "太郎" age = 20 formatted_string = "名前: {}, 年齢: {}".format(name, age) print(formatted_string)
名前付きプレースホルダーを使うこともできます。
formatted_string = "名前: {name}, 年齢: {age}".format(name="太郎", age=20) print(formatted_string)
1.3. f文字列(フォーマット済み文字列リテラル)
Python 3.6以降で使用できるこの方法は、f文字列と呼ばれ、非常に直感的で強力です。文字列の先頭にf
を付け、{}内に変数や式を埋め込みます。
name = "太郎" age = 20 formatted_string = f"名前: {name}, 年齢: {age}" print(formatted_string)
式も使用可能です。
formatted_string = f"名前: {name}, 年齢: {age + 1}" print(formatted_string)
2.フォーマットオプション
2.1. 数値のフォーマット
数値をフォーマットする際には、特定のフォーマット指定子を使用できます。
pi = 3.14159 formatted_string = f"円周率: {pi:.2f}" # 小数点以下2桁まで表示 print(formatted_string)
2.2. 文字列の幅と位置揃え
文字列の幅を指定し、左揃え、右揃え、中央揃えを行うことができます。
name = "太郎" formatted_string = f"名前: {name:<10}" # 左揃え、幅10 print(formatted_string) formatted_string = f"名前: {name:>10}" # 右揃え、幅10 print(formatted_string) formatted_string = f"名前: {name:^10}" # 中央揃え、幅10 print(formatted_string)
2.3. 複数行のf文字列
複数行に渡る文字列をフォーマットする場合、f文字列を使用することもできます。
name = "太郎" age = 20 address = "東京都" formatted_string = ( f"名前: {name}\n" f"年齢: {age}\n" f"住所: {address}" ) print(formatted_string)
2.4. その他のフォーマットオプション
他にも、整数を2進数や16進数で表示したり、パディングや符号の表示を制御するフォーマット指定子があります。
number = 255 formatted_string = f"2進数: {number:b}, 16進数: {number:x}" print(formatted_string)
まとめ
Pythonの文字列フォーマットは、旧スタイルの%演算子、str.format()メソッド、f文字列(フォーマット済み文字列リテラル)といった複数の方法で行うことができます。f文字列は特に強力で直感的な方法として、Python 3.6以降で推奨されています。これらのフォーマット方法を理解し、用途に応じて適切に使い分けることで、コードの可読性と効率を向上させることができます。