
このレクチャーでは、f-string記法の基本と定義方法について学習します。書式指定(フォーマット)については、formatメソッドと内容が同じですので、『文字列のフォーマット(書式指定)』のレクチャーで詳しく学習します。
Table of Contents(目次)
f-stringの基本
f-stringは、Python 3.6から実装された新しい文字列フォーマットの方法で、formatメソッドの利点を活かしつつ、より簡潔に書くことができます。コードを書く時は、基本的にはf-stringを使用することを考えたうえで、f-stringが使えなかったり可読性が失われるような場面で、formatメソッドを使うと良いでしょう。それぞれの特徴を理解したうえで使い分けれるようになりましょう。
formatメソッドとf-stringの違いですが、formatメソッドは、『テンプレート文字列の定義』と『{}
への置換処理(.format()
を使うタイミング)』の行を分けて記述することができます。一方、f-stringは、『定義』と『{}
への置換処理』を1行で記述することになります。これは、f-stringは可読性を上げて記述することができるというメリットがある一方で、敢えて別の行に分けて書きたいというケースでは使えないことを意味します。
f-stringよりformatメソッドを使う場面として、『使用環境に合わせて各種設定を行い、運用する』ようなケースが考えられます。このような場合、各種設定を定義しておくファイル("config.py")と、何かしら処理を行うファイル("generate_something.py")を分けてコードを記述することがあります。ファイルを分けておくことで、処理を行うコードには手を付けずに、使用環境に応じて"config.py"の中身を書き換えるだけで済むというメリットがあります。(この場合、"config.py"の中でテンプレート文字列を定義することになります。) このようにファイルを分けてコードを記述する場合は、テンプレート文字列の『定義』と『置換処理』を別の行で記述することができるformatメソッドを使うしかありません。
f-stringの定義方法
f-stringの定義は、f'...{variable}'
の形式になります。クォーテーションの前に"f"を付け、波カッコ{}
の中に変数名を直接書きます。
次のように、コードを記述します。
name = 'Nico'
age = 10
text = f'I am {name}, {age}.'
print(text) # I am Nico, 10.
3行目にf-stringの定義がありますが、この1行で"name"と"age"変数の評価と置換が行われ、生成された文字列が"text"変数へ代入されます。
f-stringで使用できるクォーテーションは、シングル'
・ダブル"
・トリプルクォーテーション'''
/ """
のいずれも使用できます。