f-string: unmatched '(' 符合函数调用

f-string: unmatched '(' in line with function call

我正在尝试使用 python 中的 f 字符串将一些变量替换为我正在打印的字符串,但出现语法错误。 这是我的代码:

print(f"{index+1}. {value[-1].replace("[Gmail]/", '')}")

我在添加替换后才开始遇到问题。我已经检查了很多次,并且确定我没有遗漏括号。我知道还有很多其他方法可以做到这一点,其中一些可能更好,但我很好奇为什么这不起作用。

好像这样不行

x = 'hellothere'
print(f"replace {x.replace("hello",'')}")

错误

    print(f"replace {x.replace("hello",'')}")
                                ^
SyntaxError: f-string: unmatched '('

试试这个

x = 'hellothere'
print(f"replace {x.replace('hello','')}")

单引号 'hello' 输出是

replace there

你的问题是双引号里面的双引号。 这个应该可以正常工作:

print(f"{index+1}. {value[-1].replace('[Gmail]/', '')}")

超出范围,但我仍然不建议您在 f-string 中使用 replace。我认为将它移动到临时变量会更好。

另一种进行字符串格式化的方法(我认为这提高了可读性):

print("{0}. {1}".format(index+1, 
                        value[-1].replace("[Gmail]/", "")))

我有同样的问题,将括号内的所有双引号更改为单引号 quotes.It 应该可以 例如来自 打印(f“水:{资源[“水”]}“) 到
打印(f“水:{资源['water']}”)