Hatena::ブログ(Diary)

Python学習日記

2010-01-28

Cのsprintfのような文字列フォーマット

07:13

Cのsprintfみたいなことをしたいというケースがあります。その場合は、文字列に%演算子を使います。

コードの例を以下のような感じです。

num = 10
str = 'taro'

# 文字列のフォーマット
formatted_msg = 'Hello %s' % str
print formatted_msg # Hello taroと出力

# 数字のフォーマット, %演算子の右側が複数の場合は括弧でかこむ
formatted_msg = '%d %x %X %f' % (num, num, num, num)
print formatted_msg # 10 a A 10.000000と出力

# 桁数を指定して数値のフォーマット
formatted_msg = '%04d %02x %02X %2.3f' % (num, num, num, num)
print formatted_msg # 0010 0a 0A 10.000と出力

ぼくがよく使う文字列フォーマットは以下です。

コード
%s文字列
%d10進数
%x16進数。a-fは小文字
%X16進数。A-Fは小文字
%f浮動小数

精度を指定する場合は以下のようになります。

コード指定説明
%04d'0010'というように4桁で出力
%02X'0A'などと2桁の16進数で出力
%2.3f'10.000'と整数部分2桁、小数点以下3桁で出力
Connection: close