1
0

More than 1 year has passed since last update.

python初学者の備忘録 文字列のフォーマット:printf形式 %演算子

Last updated at Posted at 2021-09-26

←目次へ

python,Qiita初心者なので、備忘録として記載していきます。 なにせ初心者なので、知識不足はご理解ください。 知識を深めながら追記していきたいと思います。

printf形式でのフォーマット

基本

  • 変換指定子を含む文字列 % 値
  • 変換指定子を含む文字列 % (値1,値2,...)
  • 変換指定子を組み合わせて使用する

-- 変換指定子の詳細 --

※ -- 省略可 --

 1.(マップキー)
 2.変換フラグ
変換フラグ 説明
"#" 値の変換に (下で定義されている) "別の形式" を使う
"0" 数値型に対してゼロによるパディングを行う
"-" 変換された値を左寄せにする ("0"と同時に与えた場合、"0"を上書きする
" " (スペース)符号付きの変換で正の数の場合、前に一つスペースを空ける(そうでない場合は空文字になる)
"+" 変換の先頭に符号文字('+'または'-')を付ける("スペース"フラグを上書きする
 3.最小フィールド幅

  ・ 確保される桁数を指定
  ・ "*" を指定した場合、確保される桁数を値の方で指定することができる

 4.精度

  ・小数点以下の桁数を指定(デフォルトでは6桁)
  ・指定する場合は桁数の前に.(ドット)を付ける

 5.精度長変換子

  ・Pythonでは必要ないため無視される

※ -- 必須 --

 6.変換型
変換型 説明
"d" 符号付き10進整数
"i" 符号付き10進整数
"o" 符号付き8進数
"u" 旧式の型 -- 'd' と同じ
"x" 符号付き16進数(小文字)
"X" 符号付き16進数(大文字)
"e" 指数表記の浮動小数点数(小文字)
"E" 指数表記の浮動小数点数(大文字)
"f" 10進浮動小数点数
"F" 10進浮動小数点数
"g" 浮動小数点数。指数部が-4以上または精度以下の場合には小文字指数表記、それ以外の場合には10進表記
"G" 浮動小数点数。指数部が-4以上または精度以下の場合には大文字指数表記、それ以外の場合には10進表記
"c" 文字一文字(整数または一文字からなる文字列)
"r" 文字列(Python オブジェクトをrepr()で変換する)
"s" 文字列(Python オブジェクトをstr()で変換する)
"a" 文字列(Python オブジェクトをascii()で変換する)
"%" 引数を変換せず、返される文字列中では文字'%'になる
 -- 実行例 --
# -- マップキー使用例 --
>>> "10進数=%(dec)d, 16進数=%(hex)x" % {"hex":255, "dec":255}
'10進数=255, 16進数=ff'

# -- 進数変換例 --
>>> "10進数=%d, 8進数=%o, 16進数=%x" % (255, 255, 255)
'10進数=255, 8進数=377, 16進数=ff'

# プレフィックスを付けたい場合
>>> "10進数=%#d, 8進数=%#o, 16進数=%#x" % (255, 255, 255)
'10進数=255, 8進数=0o377, 16進数=0xff'

# -- 浮動小数型変換例 --
>>> "指数表記=%e, 固定小数点表記=%f, 固定小数点表記桁指定=%.2f, 浮動小数点数=%g" % (0.0752, 0.0752, 0.0752, 0.0752) 
'指数表記=7.520000e-02, 固定小数点表記=0.075200, 固定小数点表記桁指定=0.08, 浮動小数点数=0.0752'

# -- 0埋め使用例 --
# 変換フラグ"0"を指定した場合指定フィールド幅(ここでは5)よりも数値の桁数が小さかった場合に"0"で埋める
# 左埋め
>>> "数値1=%05d" % 255
'数値1=00255'

# 右埋めは出来ない
>>> "数値1=%-05d" % 255
'数値1=255  '

# -- 空白埋め使用例 --
# 変換フラグ"-"を指定した場合指定フィールド幅(ここでは5)よりも数値の桁数が小さかった場合に空白で埋める
# 右寄せと左寄せ
>>> "数値1右寄せ=[%5d], 数値2左寄せ=[%-5d]" % (255, 255)
'数値1右寄せ=[  255], 数値2左寄せ=[255  ]'

# -- スペース --
>>> "数値1=%d, 数値2スペース=% d, 数値マイナススペース=% d" % (255, 255, -255)
'数値1=255, 数値2スペース= 255, 数値マイナススペース=-255'
# ※マイナス表記をするとスペースが詰められるので以下のようにする
>>> "数値1=%d, 数値2スペース=% d, 数値マイナススペース=%5d" % (255, 255, -255)
'数値1=255, 数値2スペース= 255, 数値マイナススペース= -255'
1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0