Pythonのf-stringを使って文字列に変数、関数を展開する方法

スポンサーリンク

Pythonの文字列フォーマットは、f-stringを使用して実現できます。

そこで、今回はPythonのf-stringの実装を中心に解説します。

スポンサーリンク

Pythonにおけるf-stringの必要性

Pythonのf-stringは、基本的に文字列の書式を整えることを目的としています。

f-string」が登場する以前は、Pythonで文字列をフォーマットする方法として、以下のようなものがありました。

  1. Pythonの’%’演算子

欠点。

Python ‘%’ 演算子 – 欠点:オブジェクトや属性に対して % 演算子 を使用することができない。

  1. Python format() 関数

デメリット string.format()関数`は、’%’演算子の欠点を克服することができましたが、冗長なフォーマット方法ですことが判明しました。

そこで、Pythonのf-stringが登場し、よりシンプルで最小限の構文で文字列の補間と整形ができるようになりました。

文字列はPythonのインタープリタによって実行時にフォーマットされます。

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 f-string で生の文字列を扱う

Pythonの生文字列は、基本的に「エスケープシーケンス」として扱われる特殊文字をリテラル文字として扱います。

エスケープシーケンスである’ n’ やバックスラッシュ( ) をリテラル文字として扱いたい場合に使用します。

構文 Python 生文字列

r'string'

Pythonのf-stringは、生の文字列と同時に動作させることができます。

構文:f-stringと生の文字列の併用

fr'string or {string}'

例えば、以下の様になります。

str1 = 'Python'
 
str4 = 'JournalDev'
 
res = fr'{str4}
and Python provides tutorials on {str1}'
 
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 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の必要性と、様々な反復子や式を使った動作について理解しました。

タイトルとURLをコピーしました