
こんにちは、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回繰り返した文字列になります。