sec01 - formatメソッドの基本・定義方法

このレクチャーでは、formatメソッドの基本と定義方法について学習します。書式指定(フォーマット)については、f-stringと内容が同じですので、『文字列のフォーマット(書式指定)』のレクチャーで詳しく学習します。

スポンサーリンク

引数の位置順に置換する ["位置引数"で定義する方法]

formatを使う時には、まず"テンプレート文字列"を作成します。テンプレート文字列に{}を仕込んで置くことで、引数で渡された値が{}へ置換されます。

template = 'I am {}, {}.'

テンプレート文字列は、通常の文字列と同様に扱われるため、String型に用意されているformatメソッドを使うことができます。

template = 'I am {}, {}.'
text = template.format('Nico', 10)

上記コードをprint出力すると、"I am Nico, 10."が出力されます。formatメソッドの引数の位置順に、{}へ値を置換します。(左から右へ、順に置換します。) また、formatメソッドを使う場合は、数値をString型へ変換しなくても文字を連結させることができます。

位置引数

引数とは関数に渡す値のことで、丸カッコ内で指定します。print("Python", 3)の場合の、"Python"3が引数になり、引数が複数ある時はカンマで区切って指定します。print関数は、受け取った引数を画面に出力するという処理を行います。

関数の丸カッコに、順番に値を定義する引数のことを、Pythonの関数定義では"位置引数"と言います。

詳しくは関数のレクチャーの中で詳しく解説します。

引数の位置が重要であることを確認するため、引数の順番を変えて実行してみましょう。

template = 'I am {}, {}.'
text = template.format(10, 'Nico')

上記コードをprint出力すると、"I am10, Nico."が出力されます。コードを書いていて思い通りに出力されない場合は、{}の位置(順番)や数などを確認してみましょう。

実際にformatメソッドを使う場合は、{}に置換する値は固定ではないため、変数で引数を定義することになります。(値が固定ならば、直接文字列に記述すればよいでしょう。)

ですので、実際には次のコードのように、変数に代入された値をそれぞれ置換することになります。

name = 'Nico'
age = 10
template = 'I am {}, {}.'
text = template.format(name, age)

尚、上記コードはテンプレート文字列を一度変数へ代入していますが、テンプレート文字列の直後に.format()を続けて書いても問題ありません。

name = 'Nico'
age = 10
text = 'I am {}, {}.'.format(name, age)

名前を指定して置換する ["キーワード引数"で定義する方法]

続いて、波カッコに名前を付ける方法を解説します。次のように、テンプレート文字列の{}の中に名前を入力します。{}にどんな値が置換されるのかが分かりやすい名前を付けましょう。

template = 'I am {name}, {age}.'

format関数の引数は(name=値)のように、波カッコで指定した名前と、波カッコの部分に置き換える値を紐づけるように記述します。

template = 'I am {name}, {age}.'
text = template.format(name='Nico', age=10)

上記のコードをprint出力すると、"I am Nico, 10."が出力されます。引数にname='Nico', age=10と記述すると、'Nico'{name}の部分に、10{age}の部分に置換されます。

"位置引数"と違って、置換する場所が名前で指定されるため、先ほどのコードと逆の順番で引数を指定しても、置換後の文字列は同じ結果が得られまます。

template = 'I am {name}, {age}.'
text = template.format(age=10, name='Nico')

上記コードのprint出力も、前回同様"I am Nico, 10."になります。引数は先ほどと順番が逆でage=10, name='Nico'と記述されていますが、10{age}の部分に、'Nico'{name}の部分に置換されるため、同じ結果が得られます。

キーワード引数

名前(変数名)=値のように定義する引数のことを、Pythonの関数定義では"キーワード引数"と言います。詳しくは関数のレクチャーの中で詳しく解説します。

スポンサーリンク