SyntaxError: f-string: 在 Python 中期待 ‘}’

SyntaxError: f-string: 在 Python 中期待 ‘}’

SyntaxError: f-string: expecting ‘}’ in Python

当我们在使用单引号包裹的 f 字符串中使用单引号时,会出现 Python“SyntaxError: f-string: expecting ‘}’”。要解决该错误,请确保将 f 字符串用双引号引起来(如果它包含单引号),反之亦然。

syntaxerror f string 期待

下面是错误如何发生的示例。

主程序
employees = ['Alice', 'Bob', 'Carl'] # ⛔️ SyntaxError: f-string: expecting '}' my_str = f'Employees list: \n{', '.join(employees)}' print(my_str)

我们将 f 字符串用单引号括起来,但字符串本身在表达式中包含单引号。

要解决错误,请替换引号。例如,如果 f 字符串包含单引号,则将其用双引号引起来。

主程序
employees = ['Alice', 'Bob', 'Carl'] my_str = f"Employees list: \n{', '.join(employees)}" # Employees list: # Alice, Bob, Carl print(my_str)

相反,如果字符串包含双引号,则将其用单引号引起来。

主程序
employees = ['Alice', 'Bob', 'Carl'] my_str = f'Employees list: \n{", ".join(employees)}' # Employees list: # Alice, Bob, Carl print(my_str)

如果您的 f 字符串同时包含双引号和单引号,则可以使用三引号字符串。

主程序
name = 'Alice' # 👇️ employee's name: Bob print(f"""employee's name: {name.replace("Alice", "Bob")}""")

错误的另一个常见原因是忘记用大括号关闭表达式块。

主程序
employees = ['Alice', 'Bob', 'Carl'] # ⛔️ SyntaxError: f-string: expecting '}' my_str = f'Employees list: \n{", ".join(employees)'

我们使用大括号打开了表达式块,但忘了关闭它。

表达式块需要使用大括号打开和关闭。

主程序
employees = ['Alice', 'Bob', 'Carl'] # ⛔️ SyntaxError: f-string: expecting '}' my_str = f'Employees list: \n{", ".join(employees)}' # Employees list: # Alice, Bob, Carl print(my_str)

如果您尝试访问字典中的键或列表中的项目,请使用方括号。

主程序
emp = {'name': 'Alice'} my_str = f"employee: {emp['name']}" print(my_str) # 👉️ employee: Alice

格式化字符串文字 (f-strings) 让我们通过在字符串前加上f.

主程序
my_str = 'is subscribed:' my_bool = True result = f'{my_str} {my_bool}' print(result) # 👉️ is subscribed: True

确保将表达式括在大括号 –{expression}中。

结论

当我们在使用单引号包裹的 f 字符串中使用单引号时,会出现 Python“SyntaxError: f-string: expecting ‘}’”。要解决该错误,请确保将 f 字符串用双引号引起来(如果它包含单引号),反之亦然。