首页 > 解决方案 > 如何修复 f-string 中未终止的表达式;python中缺少右括号?

问题描述

我想使用 f 字符串格式而不是打印。但是,我收到以下错误: f-string 中的未终止表达式;缺少右大括号预期的“)”

var="ab-c"
f"{var.replace("-","")}text123"

我尝试使用单引号 f'' 和双括号,但它们都不起作用。关于如何解决这个问题的任何想法?

标签: python

解决方案


对于f"{var.replace("-","")}text123",Python 会解析f"{var.replace("为一个完整的字符串,您可以看到它有一个开头{和开头(的 ,但随后该字符串被终止。它首先期望 a)并最终期望 a },因此您会看到错误。

为了解决这个问题,Python 允许'"包含一个字符串,因此将一个用于 f 字符串,另一个用于字符串内部:

f"{var.replace('-','')}text123"

或者:

f'{var.replace("-","")}text123'

'如果您在内部同时拥有和,也可以使用三引号"

f'''{var.replace("-",'')}text123'''

或者:

f"""{var.replace("-",'')}text123"""

推荐阅读