SyntaxError: f-string: Python 中不匹配的 ‘(‘
SyntaxError: f-string: unmatched ‘(‘ in Python
Python “SyntaxError: f-string: unmatched ‘(‘” 当我们在用双引号包裹的 f-string 中使用双引号时会发生。要解决这个错误,请确保将 f-string 包裹在单引号中,如果它包含双引号,反之亦然。
下面是错误如何发生的示例。
主程序
name = 'Alice' # ⛔️ SyntaxError: f-string: unmatched '(' print(f"employee: {name.replace("Alice", "Bob")}")
我们将 f 字符串用双引号括起来,但字符串本身在表达式中包含双引号。
要解决错误,请替换引号。例如,如果 f 字符串包含双引号,则将其用单引号引起来。
主程序
name = 'Alice' # 👇️ employee: Bob print(f'employee: {name.replace("Alice", "Bob")}')
相反,如果字符串包含单引号,则将其用双引号引起来。
主程序
name = 'Alice' # 👇️ employee: Bob print(f"employee: {name.replace('Alice', 'Bob')}")
如果您的 f 字符串同时包含双引号和单引号,则可以使用三引号字符串。
主程序
name = 'Alice' # 👇️ employee's name: Bob print(f"""employee's name: {name.replace("Alice", "Bob")}""")
错误的另一个常见原因是左括号和右括号不匹配。
主程序
name = 'Alice' # ⛔️ SyntaxError: f-string: unmatched ')' my_str = f'employee: {name)'
我们用大括号打开表达式块,但以导致错误的括号结束。
表达式块需要使用大括号打开和关闭。
主程序
name = 'Alice' my_str = f'employee: {name}' print(my_str) # 👉️ employee: Alice
如果您尝试访问字典中的键或列表中的项目,请使用方括号。
主程序
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}
中。
结论
Python “SyntaxError: f-string: unmatched ‘(‘” 当我们在用双引号包裹的 f-string 中使用双引号时会发生。要解决这个错误,请确保将 f-string 包裹在单引号中,如果它包含双引号,反之亦然。