文字列処理

[Python] print関数で数値や文字列の桁数を指定する方法

今回は、Pythonのprint関数で数値や文字列の桁数を指定する方法についてご紹介します。

Pythonのprintで桁数を指定する基本概要

Pythonのprint関数では、数値や文字列の表示形式を自在にコントロールできます。

特に桁数を指定したい場合は、以下の3つの方法が代表的です。

  • %-書式指定(旧式のフォーマット)
  • str.format()メソッド
  • f文字列(f-string)

それぞれの特徴や使い方を理解しておくことで、見やすい出力や整形されたログを実現できます。

%-書式指定を使った桁数指定

%-書式指定は、古くからある方法です。

右寄せ、左寄せ、ゼロ埋めなどのフォーマットを簡単に実装できます。

整数の桁数を指定する

以下のコードでは、整数を5桁の幅で右寄せして表示します。

実行結果

42

指定したフィールド幅よりも数値の桁数が少ない場合は、空白で埋められます。

浮動小数点数の桁数を指定する

小数点以下の桁数を指定するときは、以下のように書きます。

実行結果

3.14

先頭に空白が入っているのは、10桁の幅に合わせて右寄せを行っているためです。

文字列の桁数を指定する

文字列の桁数を指定する場合は、sを使います。

実行結果

abc
abc

%-書式指定は簡潔で軽量ですが、やや古いスタイルのためメンテナンス性を重視する場合は後述の方法が好まれることがあります。

str.format()メソッドを使った桁数指定

Python 2.6以降で利用できる方法です。

フォーマット文字列内に{:…}の形式で指定し、柔軟な書式設定が可能です。

整数の桁数指定

実行結果

42
00042

フィールド幅を確保しつつ、0埋めなどの細かな指定もできます。

浮動小数点数の桁数指定

小数点以下の桁数を指定する場合は、:.2fのように書きます。

実行結果

3.14

数値の部分に空白が入るのは、10桁に合わせて右寄せされているからです。

文字列の桁数指定

実行結果

abc
abc
abc

fillやalignなどのオプションも組み合わせることで、任意の文字でパディングを行ったり、配置位置を調整することができます。

f文字列(f-string)を使った桁数指定

Python 3.6以降で使える最もシンプルな方法です。

変数を中括弧 {} に直接埋め込むことで、コードの可読性を高められます。

整数の桁数指定

実行結果

42
00042

浮動小数点数の桁数指定

実行結果

3.14

文字列の桁数指定

実行結果

abc
abc
abc

f文字列は、シンプルかつ可読性に優れた表記であるため、現在最も主流の書式指定方法の一つとなっています。

よくあるエラーや注意点

  • 指定幅よりも値が長い:指定した桁数を超える文字数の場合、桁数指定は無視され、値がそのまま出力されます。
  • 型とフォーマット指定子の不一致:数値に文字列用のsを使うなど、型が合わない指定子を使うとエラーが発生します。
  • バージョン制約:f文字列はPython 3.6以降で利用可能です。古い環境ではstr.format()や%-書式指定を使う必要があります。
  • 方法の混在:複数の方法を同じコード内で混在させると可読性が下がります。同じプロジェクト内では統一するのがおすすめです。

まとめ

Pythonのprintで桁数を指定する方法は、%-書式指定、str.format()メソッド、f文字列の3つがあります。

どれも数値や文字列を任意の幅に整形でき、右寄せ、左寄せ、ゼロ埋め、小数点以下の桁数指定などを柔軟に行えます。

プロジェクトや環境に応じて最適な方法を選び、見やすい出力フォーマットを実現してください。