Cのsprintfのような文字列フォーマット
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 | 文字列 |
%d | 10進数 |
%x | 16進数。a-fは小文字 |
%X | 16進数。A-Fは小文字 |
%f | 浮動小数点 |
精度を指定する場合は以下のようになります。
コード指定 | 説明 |
---|---|
%04d | '0010'というように4桁で出力 |
%02X | '0A'などと2桁の16進数で出力 |
%2.3f | '10.000'と整数部分2桁、小数点以下3桁で出力 |