このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】format関数

format関数

 format関数は、値を指定した書式に従って文字列に変換するための強力なツールです。これにより、数値や文字列を左右中央揃えにしたり、桁数や小数点以下の桁数、さらには千位区切りの記号を入れたりすることができます。プログラムの出力結果を見やすく整形するために、format関数は非常に役立ちます。
 ここでは、format関数の基本的な使い方から、書式指定ミニ言語の主要な要素、そして具体的な応用例までを解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.format関数の基本

1.1. 基本構文と動作

format関数は、以下の構文で値を整形し、結果の文字列を返します。

format(値, 書式指定)

たとえば、整数4567をデフォルトの書式で整形すると、以下のようになります。

# 整数4567をデフォルト書式で表示
result = format(4567)
print(result)  # 出力: 4567

出力結果

4567

解説

 この例では、format関数に値4567を渡し、特に書式指定をしていないため、そのまま文字列"4567"が返されます。

1.2. 書式指定ミニ言語の基本

 format関数で利用できる書式指定ミニ言語には、値の揃え方や桁数、小数点以下の桁数、千位区切りなどさまざまな機能があります。以下の表は、左右中央揃えの指定方法をまとめたものです。

書式指定寄せ方
'10'数値は右寄せ、文字列は左寄せ
'<10'左寄せ
'>10'右寄せ
'^10'中央寄せ

例えば、整数4567に対して桁数10で右寄せ、左寄せ、中央寄せする例は以下の通りです。

print(format(4567, '10'))   # 出力: '      4567'(右寄せ)
print(format(4567, '<10'))  # 出力: '4567      '(左寄せ)
print(format(4567, '^10'))  # 出力: '   4567   '(中央寄せ)

出力結果

      4567
4567      
   4567  

解説

  • '10' と指定した場合、数値はデフォルトで右寄せとなります。
  • '<10' は左寄せ、'^10' は中央寄せを意味し、指定した桁数分の空白で埋めて表示されます。

2.format関数の応用例

2.1. 浮動小数点数の整形

 浮動小数点数を扱う場合、小数点以下の桁数を制御することがよくあります。書式指定には、全体桁数と小数点以下の桁数を指定することができます。

# 浮動小数点数1/7の値を整形する例
value = 1 / 7
print(format(value))        # 書式指定なし: '0.14285714285714285'
print(format(value, '.3f')) # 小数点以下3桁: '0.143'
print(format(value, '10.3f')) # 全体10桁、小数点以下3桁: '     0.143'

出力結果

0.14285714285714285
0.143
     0.143

解説

  • 書式指定なしでは、浮動小数点数の全桁が表示されます。
  • '.3f' と指定することで、小数点以下3桁に丸められ、固定小数点表記(fixed-point notation)となります。
  • '10.3f' は、全体の幅を10桁とし、右寄せで表示します。

2.2. 千位区切りの整形

 大きな数値を読みやすくするために、千位ごとにカンマやアンダースコアを入れる書式指定も利用できます。

number = 1234567890
print(format(number))         # 書式指定なし: '1234567890'
print(format(number, ','))    # カンマ区切り: '1,234,567,890'
print(format(number, '_'))    # アンダースコア区切り: '1_234_567_890'

出力結果

1234567890
1,234,567,890
1_234_567_890

解説

  • 書式指定なしでは数値はそのまま表示されます。
  • ',' と指定すると、千位ごとにカンマが自動的に挿入され、数値が読みやすくなります。
  • 同様に、'_' を指定すると、アンダースコアが区切り文字として使用されます。

まとめ

 format関数を利用することで、数値や文字列の表示形式を細かく制御することができ、データを見やすく整形することが可能です。

  • 基本構文は format(値, 書式指定) であり、書式指定ミニ言語を利用して、左右寄せや中央寄せ、桁数、小数点以下の桁数、千位区切りなどを簡単に指定できます。
  • 応用例として、浮動小数点数の丸め処理や大きな数値の区切り処理など、さまざまな用途に対応できます。

 これらのテクニックを活用することで、プログラムの出力がより整然とし、ユーザーにとっても理解しやすい結果を提供できるようになります。