Pythonのformat関数・メソッドで書式変換(0埋め、指数表記、16進数など)

 

Pythonでデータの表示形式を整えたい時に欠かせないのがformat関数・メソッドです。数値の0埋め、指数表記、16進数変換など、様々な書式変換を簡単に実現できます。この記事では、format関数・メソッドの基本的な使い方から応用まで、実用的な例とともに詳しく解説します。

format()メソッドの基本的な使い方

format()メソッドは文字列に対して使用し、プレースホルダー{}に値を埋め込むことができます。

name = "太郎"
age = 25
message = "私の名前は{}で、年齢は{}歳です".format(name, age)
print(message)  # 私の名前は太郎で、年齢は25歳です

インデックスを使った指定

text = "{0}は{1}歳、{0}の趣味は読書です".format("花子", 30)
print(text)  # 花子は30歳、花子の趣味は読書です

数値の書式指定

ゼロ埋め(0埋め)

数値を指定した桁数でゼロ埋めする場合は:0桁数dを使用します。

num = 42
print("{:05d}".format(num))  # 00042
print("{:08d}".format(num))  # 00000042

指数表記

科学表記法で数値を表示する場合は:eまたは:Eを使用します。

large_num = 1234567.89
print("{:e}".format(large_num))  # 1.234568e+06
print("{:E}".format(large_num))  # 1.234568E+06
print("{:.2e}".format(large_num))  # 1.23e+06

16進数表記

16進数で表示する場合は:x(小文字)または:X(大文字)を使用します。

num = 255
print("{:x}".format(num))  # ff
print("{:X}".format(num))  # FF
print("{:04X}".format(num))  # 00FF

その他の進数表記

num = 42
print("{:b}".format(num))  # 101010 (2進数)
print("{:o}".format(num))  # 52 (8進数)

浮動小数点数の書式指定

小数点以下の桁数指定

pi = 3.141592653589793
print("{:.2f}".format(pi))  # 3.14
print("{:.4f}".format(pi))  # 3.1416

パーセンテージ表記

ratio = 0.85
print("{:.1%}".format(ratio))  # 85.0%
print("{:.2%}".format(ratio))  # 85.00%

キーワード引数を使った書式指定

data = {"name": "山田", "score": 95, "rank": 1}
result = "名前: {name}, 得点: {score:03d}, 順位: {rank}位".format(**data)
print(result)  # 名前: 山田, 得点: 095, 順位: 1位

実用的な応用例

ファイル名の連番生成

for i in range(1, 6):
    filename = "image_{:03d}.jpg".format(i)
    print(filename)
# image_001.jpg
# image_002.jpg
# image_003.jpg
# image_004.jpg
# image_005.jpg

金額の表示

price = 1234567
print("価格: ¥{:,}".format(price))  # 価格: ¥1,234,567

時刻の表示

hour = 9
minute = 5
second = 3
time_str = "{:02d}:{:02d}:{:02d}".format(hour, minute, second)
print(time_str)  # 09:05:03

まとめ

Pythonのformat()メソッドは、数値や文字列の書式を柔軟に指定できる強力な機能です。0埋め、指数表記、16進数変換など、様々な書式変換を簡単に実現できるため、データの表示やファイル処理において非常に有用です。

現在はf文字列(f-string)がより推奨される場合も多いですが、format()メソッドは動的な書式指定が必要な場合や、Python 3.6未満の環境では依然として重要な機能です。適切な場面で使い分けることで、より読みやすく保守性の高いコードが書けるようになります。

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座