こんにちは、PyQサポートです。
今回は SyntaxError: f-string: expecting '}'
というエラーの意味と、その解消方法を解説します。
文字列の作成時にこのようなエラーが出ることがあります。
早速、質問を見ていきましょう。
質問 SyntaxError: f-string: expecting '}'
というエラーはどういうものですか?
SyntaxError: f-string: expecting '}'
というエラーが出ました。
どのように直したら良いでしょうか?
入力した内容(コード)
date = "2022-04-06" print(f"今日は{date")
出たエラー(実行結果)
Python 3.10 で実行した結果
File "<stdin>", line 1 print(f"今日は{date") ^ SyntaxError: f-string: expecting '}'
回答 f-stringのコード中に}
が不足していることを表しています
エラーの原因は、f"今日は{date"
に}
が不足しているからです。
エラーの説明も「f-stringのdate
の後に}
を期待」となっています。
エラーを解消するには、下記のようにdate
の後に}
を追加します。
date = "2022-04-06" print(f"今日は{date}")
実行結果
今日は2022-04-06
Python文法の解説:f-strings
f"..."
のような記述をf-stringsといいます。
通常の文字列との違いは、文字列中の{}
内にPythonのコードが書けることです。
Pythonでは、f-strings中に{
が出てきたら、}
までを抽出しようとします。そのときに、}
が存在しないと文法エラー(SyntaxError)になります。
エラーを解消したコードでは、{}
内はdate
という変数になっています。
{}
内にはPythonのコードが書けるので、下記のように変数以外も書くことができます。
print(f"今日は{date[:4] * 2}")
実行結果
今日は20222022
date[:4] * 2
は、文字列の先頭4文字を2回繰り返した文字列になります。