今回は、Pythonのprint関数でformatを使って、出力書式を指定する方法についてご紹介します。
formatメソッドとは
Pythonのformatメソッドは、文字列中のプレースホルダー{}
に変数や値を挿入し、さまざまな書式で整形するために利用されます。
波括弧を使って挿入位置を指定できるため、コードの可読性を保ちつつ柔軟に出力形式を制御できます。
また、位置引数やキーワード引数を用いることで、順番や名前を指定して自由度の高いフォーマットが可能です。
print関数と書式指定の基本
Pythonのprint関数に文字列を渡す際、通常はprint("Hello World")
のようにそのまま文字列を出力します。
しかし、書式指定を行いたい場合は、以下のようにformatメソッドを用いることで、プレースホルダー{}
に値をはめ込むことができます。
1 2 3 |
name = "Alice" age = 30 print("My name is {} and I am {} years old.".format(name, age)) |
My name is Alice and I am 30 years old.
上記の例では、formatメソッドによって{}
がname
とage
に置き換えられます。
このように、print関数と組み合わせてさまざまな書式指定を行える点が大きな特徴です。
よくある使い方の例
1. 位置引数の利用
位置引数とは、format
メソッドで渡された引数を番号で管理し、挿入位置を指定する方法です。
1 |
print("First: {0}, Second: {1}, Again first: {0}".format("apple", "banana")) |
First: apple, Second: banana, Again first: apple
{0}
が”apple”、{1}
が”banana”に対応し、必要に応じて同じ値を複数回使用できます。
2. キーワード引数の利用
キーワード引数では、変数名をそのまま使ってプレースホルダーに値を挿入できます。
1 |
print("Name: {name}, Age: {age}".format(name="Bob", age=25)) |
Name: Bob, Age: 25
可読性を高めるだけでなく、引数の順番を気にする必要がなくなる利点があります。
3. 数値の書式指定
数値を扱うときは、小数点以下の桁数や整数の桁数などを柔軟に指定できます。
- 小数点以下の桁数を指定
1 2 |
pi = 3.14159265 print("Pi is approximately {0:.2f}".format(pi)) |
Pi is approximately 3.14
{0:.2f}
は小数点以下2桁まで表示する指定です。
- 整数の桁数を揃える(0埋め)
1 2 |
for num in range(1, 6): print("Number: {0:03d}".format(num)) |
Number: 001
Number: 002
Number: 003
Number: 004
Number: 005
{0:03d}
のように書くと、3桁に満たない場合は先頭を0で埋めた形式で出力できます。
4. 文字列の整列
文字列の整列を指定することで、一定幅で左寄せ・右寄せ・中央寄せなどを実現できます。
1 2 3 4 |
text = "Hello" print("Left aligned : {:<10}".format(text)) print("Right aligned : {:>10}".format(text)) print("Center aligned: {:^10}".format(text)) |
Left aligned : Hello
Right aligned : Hello
Center aligned: Hello
{:<10}
は左寄せ、{:>10}
は右寄せ、{:^10}
は中央寄せを示し、10文字分のスペースを確保して文字を配置します。
5. パーセンテージや科学的記数法
パーセンテージ表示や科学的記数法で表示することも可能です。
1 2 3 |
value = 0.12345 print("Percentage: {:.1%}".format(value)) print("Scientific: {:.2e}".format(value)) |
Percentage: 12.3%
Scientific: 1.23e-01
このように、数値をさまざまな書式で表現できます。
よくあるエラーと対策
- プレースホルダーの不一致
指定した{}
の数と、formatメソッドに渡した引数の数が合わないとIndexError
が発生します。
対策として、引数の個数を確認するか、キーワード引数を利用して可読性を高める方法があります。
- 書式指定子のミス
{0:.2f}
などの書式指定子が誤っていると、ValueError
やTypeError
が起きる可能性があります。
小数点以下の桁数を指定するときはf
を、整数ならd
を使用するなど、正しい書式指定を心掛けましょう。
- 波括弧のエスケープ
文字列として{
や}
をそのまま表示したい場合は{{
や}}
と記述する必要があります。
まとめ
formatメソッドを使うことで、print関数の出力を自由に制御できます。
位置引数やキーワード引数でコードが整理しやすくなり、数値の書式指定なども柔軟に行えます。
エラーを回避するためには、指定子や引数の整合性を常に確認すると効果的です。