迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Python 中 SyntaxError: f-string: expecting '}' 错误

作者:迹忆客 最近更新:2022/11/21 浏览次数:

当我们在使用单引号包裹的 f-string 中使用单引号时,会发生 Python “ SyntaxError: f-string: expecting '}' ” 。 要解决该错误,如果 f 字符串包含单引号,请确保将其包含在双引号中,反之亦然。

下面是一个产生上述错误的示例代码

employees = ['Alice', 'Bob', 'Carl']

# ⛔️ SyntaxError: f-string: expecting '}'
my_str = f'Employees list: \n{', '.join(employees)}'

print(my_str)

python SyntaxError- f-string- expecting }

我们将 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-string 中使用单引号时,会发生 Python “SyntaxError: f-string: expecting '}'”。 要解决该错误,如果 f 字符串包含单引号,请确保将其包含在双引号中,反之亦然。

本站文章均为原创或翻译,转载请发邮件至 1244347461@qq.com 进行申请,未经许可,禁止转载。经作者同意之后,转载请以链接形式注明出处

本文地址:

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

热门文章

教程更新

热门标签

扫码一下
查看教程更方便