首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >f-string:不匹配的'(‘

f-string:不匹配的'(‘
EN

Stack Overflow用户
提问于 2021-05-15 04:07:59
回答 3查看 2.6K关注 0票数 1

我试图在python中使用f字符串将一些变量替换成我要打印的字符串,但我得到了一个语法错误。下面是我的代码:

代码语言:javascript
复制
print(f"{index+1}. {value[-1].replace("[Gmail]/", '')}")

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-15 04:11:11

看起来这不管用

代码语言:javascript
复制
x = 'hellothere'
print(f"replace {x.replace("hello",'')}")

错误

代码语言:javascript
复制
    print(f"replace {x.replace("hello",'')}")
                                ^
SyntaxError: f-string: unmatched '('

试试这个吧

代码语言:javascript
复制
x = 'hellothere'
print(f"replace {x.replace('hello','')}")

单引号'hello'输出为

代码语言:javascript
复制
replace there
票数 0
EN

Stack Overflow用户

发布于 2021-05-15 04:11:56

您的问题是双引号内的双引号。下面的代码应该可以正常工作:

代码语言:javascript
复制
print(f"{index+1}. {value[-1].replace('[Gmail]/', '')}")

虽然超出了讨论范围,但我仍然不建议您在f-string中使用replace。我认为把它移到一个临时变量会更好。

票数 1
EN

Stack Overflow用户

发布于 2021-05-15 04:11:56

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

代码语言:javascript
复制
print("{0}. {1}".format(index+1, 
                        value[-1].replace("[Gmail]/", "")))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67540413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档