Pythonの文字列フォーマットは、f-stringを使用して実現できます。
そこで、今回はPythonのf-stringの実装を中心に解説します。
Pythonにおけるf-stringの必要性
Pythonのf-stringは、基本的に文字列の書式を整えることを目的としています。
f-string」が登場する以前は、Pythonで文字列をフォーマットする方法として、以下のようなものがありました。
- Pythonの’%’演算子
欠点。
Python ‘%’ 演算子 – 欠点:オブジェクトや属性に対して % 演算子
を使用することができない。
- Python format() 関数
デメリット string.format()関数`は、’%’演算子の欠点を克服することができましたが、冗長なフォーマット方法ですことが判明しました。
そこで、Pythonのf-stringが登場し、よりシンプルで最小限の構文で文字列の補間と整形ができるようになりました。
文字列はPythonのインタープリタによって実行時にフォーマットされます。
この記事もチェック:Pythonの文字列フォーマット|f文字列やformat関数等での使い方
Python f-stringの動作とその例
f-stringはformatted stringとも呼ばれ、文字列の挿入と特定の文字列の書式設定を行うLiteral String Interpolationの役割を果たします。
構文は以下の通りです。
f '{string}'
|
例:文字列を反復可能なものとしたf-string
str1 = 'Python'
str4 = 'JournalDev'
res = f '{str4} provides tutorials on {str1}'
print (res)
|
上で見たように、f-stringは入力文字列str1とstr4をstring文の間に挿入するために使われます。
出力は以下の通りです。
JournalDev provides tutorials on Python |
この記事もチェック:Pythonでstringモジュールを使ってランダムな文字列を生成する方法
Python f-string で生の文字列を扱う
Pythonの生文字列は、基本的に「エスケープシーケンス」として扱われる特殊文字をリテラル文字として扱います。
エスケープシーケンスである’ n’ やバックスラッシュ( ) をリテラル文字として扱いたい場合に使用します。
構文 Python 生文字列
r 'string'
|
Pythonのf-stringは、生の文字列と同時に動作させることができます。
構文:f-stringと生の文字列の併用
fr 'string or {string}'
|
例えば、以下の様になります。
str1 = 'Python'
str4 = 'JournalDev'
res = fr '{str4}
print (res)
|
上記の例では、’˶’はリテラル文字として扱われます。
結果は以下の通りです。
JournalDev and Python provides tutorials on Python
|
f-stringで関数を呼び出す
Pythonのf-stringは、その中で関数を呼び出すことができます。
そのため、コードをある程度最適化することができます。
同じ方法で、f-stringブラケット内にラムダ関数を作成することができます。
構文は以下の通りです。
f '{func()}'
|
例えば、以下の様になります。
def mult(a,b):
res = a * b
return res
mult_res = f '{mult(10,20)}'
print (mult_res)
|
結果は、以下の通りになります。
200 |
Python の f-string(空白/ホワイトスペース付き文字列)。
Pythonのf-stringは空白やホワイトスペースも扱うことができます。
これは末尾と先頭のホワイトスペースを無視し、リテラル文字列の間のスペースは変更されずに保存されます。
例えば、以下の様になります。
mult_res = f ' Multiplication: { 10 * 10 } '
print (mult_res)
|
結果は、以下の通りになります。
Multiplication: 100 |
この記事もチェック:Pythonで文字列の末尾の改行や空白を切り取る(ストリップ)する方法を解説する
Python f-string with expressions
Python の f-string は式を扱うことができます。
そのため、基本的な操作はf-stringの中で直接行うことができます。
構文は以下の通りです。
f '{expression' }
|
例えば、以下の様になります。
x = 10
y = 5
print (f 'Result: {x/y} ' )
|
結果は以下の通りです。
Result: 2.0
|
f-stringをPythonの辞書で表示する
ご存知のように、Pythonの辞書データ構造はkey-valueのペアで動作します。
Pythonのf-stringは、辞書と一緒にフレーム化することもできます。
構文は以下の通りです。
f "{dict['key']}"
|
例えば、以下の様になります。
info = { 'age' : '21' , 'city' : 'Pune' }
print (f "{info['city']}" )
|
結果は、以下の通りになります。
Pune |
まとめ
以上、今回はf-stringの必要性と、様々な反復子や式を使った動作について理解しました。