文字列処理

[Python] print関数でformatを使って書式を指定する方法

今回は、Pythonのprint関数でformatを使って、出力書式を指定する方法についてご紹介します。

formatメソッドとは

Pythonのformatメソッドは、文字列中のプレースホルダー{}に変数や値を挿入し、さまざまな書式で整形するために利用されます。

波括弧を使って挿入位置を指定できるため、コードの可読性を保ちつつ柔軟に出力形式を制御できます。

また、位置引数やキーワード引数を用いることで、順番や名前を指定して自由度の高いフォーマットが可能です。

print関数と書式指定の基本

Pythonのprint関数に文字列を渡す際、通常はprint("Hello World")のようにそのまま文字列を出力します。

しかし、書式指定を行いたい場合は、以下のようにformatメソッドを用いることで、プレースホルダー{}に値をはめ込むことができます。

実行結果

My name is Alice and I am 30 years old.

上記の例では、formatメソッドによって{}nameageに置き換えられます。

このように、print関数と組み合わせてさまざまな書式指定を行える点が大きな特徴です。

よくある使い方の例

1. 位置引数の利用

位置引数とは、formatメソッドで渡された引数を番号で管理し、挿入位置を指定する方法です。

実行結果

First: apple, Second: banana, Again first: apple

{0}が”apple”、{1}が”banana”に対応し、必要に応じて同じ値を複数回使用できます。

2. キーワード引数の利用

キーワード引数では、変数名をそのまま使ってプレースホルダーに値を挿入できます。

実行結果

Name: Bob, Age: 25

可読性を高めるだけでなく、引数の順番を気にする必要がなくなる利点があります。

3. 数値の書式指定

数値を扱うときは、小数点以下の桁数や整数の桁数などを柔軟に指定できます。

  • 小数点以下の桁数を指定

実行結果

Pi is approximately 3.14

{0:.2f}は小数点以下2桁まで表示する指定です。

  • 整数の桁数を揃える(0埋め)

実行結果

Number: 001
Number: 002
Number: 003
Number: 004
Number: 005

{0:03d}のように書くと、3桁に満たない場合は先頭を0で埋めた形式で出力できます。

4. 文字列の整列

文字列の整列を指定することで、一定幅で左寄せ・右寄せ・中央寄せなどを実現できます。

実行結果

Left aligned : Hello
Right aligned : Hello
Center aligned: Hello

{:<10}は左寄せ、{:>10}は右寄せ、{:^10}は中央寄せを示し、10文字分のスペースを確保して文字を配置します。

5. パーセンテージや科学的記数法

パーセンテージ表示や科学的記数法で表示することも可能です。

実行結果

Percentage: 12.3%
Scientific: 1.23e-01

このように、数値をさまざまな書式で表現できます。

よくあるエラーと対策

  • プレースホルダーの不一致

指定した{}の数と、formatメソッドに渡した引数の数が合わないとIndexErrorが発生します。

対策として、引数の個数を確認するか、キーワード引数を利用して可読性を高める方法があります。

  • 書式指定子のミス

{0:.2f}などの書式指定子が誤っていると、ValueErrorTypeErrorが起きる可能性があります。

小数点以下の桁数を指定するときはfを、整数ならdを使用するなど、正しい書式指定を心掛けましょう。

  • 波括弧のエスケープ

文字列として{}をそのまま表示したい場合は{{}}と記述する必要があります。

まとめ

formatメソッドを使うことで、print関数の出力を自由に制御できます。

位置引数やキーワード引数でコードが整理しやすくなり、数値の書式指定なども柔軟に行えます。

エラーを回避するためには、指定子や引数の整合性を常に確認すると効果的です。