フォーマット済み文字列リテラル
C言語の printf 関数は、第2引数以降で与えた値を、文字列中に記述した書式指定子に従って流し込む機能を有する。
code:sampl01.c
printf("int = %d, double = %lf \n", 7, 42.195);
この機能は上のように定数を組み込むのではなく、次のように変数を組み込むことで効果を発揮することはご存じの通りである。
code:sample02.c
for(int i=0; i<10;i++)
print("loop =%d \n", i);
これに対し、Pythonにおいては、文字列自身が指定した書式で与えたデータを用いて、新たな文字列を生成する機能を有している。
code:sample03.py
' {インデックス:書式指定}'.format(値)
値は複数渡すことができ、インデックスは値の順番を意味する整数値である。
書式指定で値を文字列に変換する際の形式を指定する。
引数の渡し方
値を1つだけ流し込む例を示す。インデックスと書式指定は省略している。
code:sample04.py
data = 'x = {:}'.format(7)
print(data)
# x = 7
複数の値を流し込んでみる。インデックスを省略すると format メソッドに渡した順に流し込まれる。
code:sample05.py
data = ' {:}, {:}, {:}'.format(21, 160.1, 'mojimoji')
print(data)
# 7, 160.1, mojimoji
インデックスを整数値で指定する。
code:sample06.py
x = '{2:}さん:年齢は{0:}、身長は{1:}'.format(21, 160.1, 'mojimoji')
print(x)
# mojimojiさん:年齢は7、身長は160.1
formatメソッドに対して名前付き引数として渡した場合、名前をインデックスとして利用できる。
code:sample07.py
x = '{name:s}さん:年齢は{age:}、身長は{height:}'.format(age=21, height=160.1, name='mojimoji')
print(x)
# mojimojiさん:年齢は7、身長は160.1
書式指定子
作成中