文字列に数字,文字を埋め込むformat関数について
文字列に数字や文字、文字列などの値を埋め込むPythonのformat関数の使い方について、解説とColaboratoryで実行した様子を投稿します。
format関数の左揃え(<)や右揃え(>)、数字のカンマ(,)区切りなどを書いたものが下の投稿になります。
「format関数 左揃え<右揃え>カンマ(,) Python」
目次
1.format関数につて
2.format関数の使い方
・文字列を代入した変数を使う場合
・format()のカッコに直接、値を入れる場合
・format()のカッコに直接、変数を入れる場合
・エラー
3.format関数を使わないやり方と比較
1.format関数につて
format関数は文字列や文字列を代入した変数に指定した数字、文字、文字列などの値を埋め込みます。
イメージ
“{0}〇〇{1}〇”.format(0に埋め込む値,1に埋め込む値)
{}中カッコの中に、指定した埋め込む値が入ります。
2.format関数の使い方
1 2 3 4 5 6 |
d1="今年" d2="漢字" d3=2020 d4="密" print("{0}の{1}、{2}年は{3}です".format(d1,d2,d3,d4)) |

変数d1の”今年“の文字列が{0}に、変数d2の”漢字“の文字列が{1}にそれぞれ埋め込まれます。
上のプログラムでは{0}{1}{2}と番号を付けて何番目に埋め込むかを決めていますが、順番どおり埋め込む場合は番号を付けなくてもできます。それが下のプログラムになります。
1 2 3 4 5 6 |
d1="今年" d2="漢字" d3=2020 d4="密" print("{}の{}、{}年は{}です".format(d1,d2,d3,d4)) |

番号を指定しないプログラムでも動きますが、番号をつけた方がわかりやすいので番号を付けます。
文字列を代入した変数を使う場合
1 2 3 4 5 6 7 |
d1="今年" d2="漢字" d3=2020 d4="密" moji="{0}の{1}、{2}年は{3}です" print(moji.format(d1,d2,d3,d4)) |

変数mojiに中カッコで埋め込む場所を指定しておいた文字列(“{0}の{1}、{2}年は{3}です“)を用意しておきます。そして、format関数でd1,d2などの値を埋め込みます。この文字列を代入した変数を使う場合でも番号を付けないで埋め込めます。
format()のカッコに直接、値を入れる場合
1 2 |
moji="{d1}の{d2}の{d3}は{d4}です".format(d1="月曜日",d2="ダイアン",d3="よなよな",d4="面白い") print(moji) |

format()のカッコに埋め込む変数d1,d2..などを用意し、そこに直接数字や文字、文字列などの値を入れることができます。
この方法で埋め込むときは{0}{1}{2}ではなく{d1}{d2}{d3}のようにカッコの中の変数名と同じにしないといけないです。
format()のカッコに直接、変数を入れる場合
1 2 3 4 5 6 7 |
m1="月曜日" m2="ダイアン" m3="よなよな" m4="面白い" moji="{d1}の{d2}の{d3}は{d4}です".format(d1=m1,d2=m2,d3=m3,d4=m4) print(moji) |

format()のカッコの中にある変数(d1,d2…)に別で用意した変数を代入することができます。
※最初の方にやったprint(“{0}の{1}、{2}年は{3}です”.format(d1,d2,d3,d4))の方が、扱いやすいです。
エラー
1 2 |
moji="{0}の{1}の{2}は{3}です".format(d1="月曜日",d2="ダイアン",d3="よなよな",d4="面白い") print(moji) |

“{d1}の{d2}の{d3}は{d4}です”ではなく{0}{1}{2}のように埋め込もうとするとエラーになります。
3.format関数を使わないやり方と比較
1 2 3 4 5 6 7 8 |
d1=2020 d2=12 d3=25 d4="やりすぎ都市伝説" d5="面白かった" moji="{0}年{1}月{2}日の{3}は{4}です。".format(d1,d2,d3,d4,d5) print(moji) |

このformat関数を使うやり方と下のformat関数を使わずにstr()や+演算子で文字列を埋め込んだプログラムの比較をします。
1 2 3 4 5 6 7 8 |
d1=2020 d2=12 d3=25 d4="やりすぎ都市伝説" d5="面白かった" moji=str(d1)+"年"+str(d2)+"月"+str(d3)+"日の"+d4+"は"+d5+"です。" print(moji) |

使うやり方と使わないやり方を比較して思ったことはstr()や+演算子で文字列に値を埋め込むことはできるのですが、+区切りごとにでダブルクォーテーション(“”)で囲まないといけなかったり、str()を使わないといけなかったりするので、format関数を使う方が楽です。
str()についての投稿がこちらになります。
「カンマ「,」とstr()+の違い Python」