You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python f-string未终止字面量语法错误求助

Python f-string未终止字面量语法错误求助

嗨,我来帮你排查这个问题~

你遇到的SyntaxError: unterminated f-string literal错误,根本原因不是*符号导致的,而是你的f-string在多行书写时没有正确处理换行,Python解释器误以为字符串还没写完,所以抛出了未终止字面量的错误。

你之前删掉*后错误跳到其他行,只是因为字符串结构变化后,解释器检测到错误的位置变了,但核心问题始终是多行f-string的写法不符合规范。

这里给你几种修正方案:

方案1:使用三重引号定义多行f-string

这是最直观的方式,三重引号允许字符串直接换行,不需要额外处理:

message = (
    f'''Lembrete de que existe uma reserva para amanhã de *{dayAfter}* 
    {dayAfterCellphone} para a carrinha que estás a usar.'''
)

也可以用双引号的三重引号""",效果是一样的。

方案2:在换行末尾添加反斜杠

用反斜杠告诉Python这行代码还未结束,会把下一行的内容合并到当前字符串中:

message = (
    f'Lembrete de que existe uma reserva para amanhã de *{dayAfter}* \
    {dayAfterCellphone} para a carrinha que estás a usar.'
)

⚠️ 注意:这种方式可能会引入缩进带来的多余空格,如果不需要空格的话,要调整换行的位置。

方案3:拆分f-string为多个部分拼接

把长字符串拆成多个f-string片段,Python会自动将相邻的字符串字面量拼接起来:

message = (
    f'Lembrete de que existe uma reserva para amanhã de *{dayAfter}* '
    f'{dayAfterCellphone} para a carrinha que estás a usar.'
)

这种方式不会有多余空格的问题,也很清晰。

备注:内容来源于stack exchange,提问作者Duarte Almeida

火山引擎 最新活动