文字列の中に様々な形式で値を入れる方法です。
%を使う方法
a = 'I am %d years old.' % 20 > a 'I am 20 years old. '
様々な言語でお馴染みですね。
指定 | データ型 |
---|---|
%s | 文字列 |
%d | 10進整数 |
%x | 16進整数 |
%o | 8進整数 |
%f | 10進float |
%e | 指数形式float |
%g | 10進floatまたは指数形式float |
%% | リテラルの% |
文字列の中でデータを差し込みたいところに%を置き、%の後ろにデータ型を指定します。
そのため、ただ'%'の文字を使いたいときは%%と%を2回入力しないといけません。
'%s is %f %%' % ('Apple', 40.0) > 'Apple is 40.000000 %'
ちょっとした仕様
各変数について最小限の幅10を設定し、右揃えにして左側の余った部分にスペースを詰める。
'%10s is %10s.' % ('Dog', 'cute') > ' Dog is cute.'
同じ幅を使って左揃えにする。
'%-10s is %-10s.' % ('Dog', 'cute') > 'Dog is cute .'
文字数に上限を加える(float型では小数点以下が指定した桁になる)
'%.3s is %.3f %.3s.' % ('Dog', 10.345, 'weights') > 'Dog is 10.345 wei.'
formatを使う方法
'{} is {}.'.format('cat', 'cute') > 'cat is cute.'
引数の順序の指定が可能
'{1} is {0}.'.format('cat', 'cute') > 'cute is cat'
右揃え左揃え中央揃え
'{0:>10s} is {1:10>f} {2:10s}.'.format('Dog', 10.345, 'weights') > ' Dog is 10.345000 weights.' '{0:<10s} is {1:<10f} {2:<10s}.'.format('Dog', 10.345, 'weights') > 'Dog is 10.345000 weights .' '{0:^10s} is {1:^10f} {2:^10s}.'.format('Dog', 10.345, 'weights') > ' Dog is 10.345000 weights .'
パディング(埋め)
0埋めなど
< > ^ で埋める場所を指定
'{0:0>2d}-{1:0>2d}'.format(12, 2) > '12-02' '{0:0<2d}-{1:0<2d}'.format(12, 2) > '12-20'