You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python单引号包裹f-string内含撇号触发语法错误如何解决

错误原因
  • 字符串引号冲突:你写的f-string外层使用单引号'包裹,但是字符串内容中存在don't的单引号,Python解析时会把这个内部单引号判定为字符串的结束标识,后续的字符不符合Python语法规则,因此触发语法报错。
  • 未符合需求要求:原代码没有按要求先将拼接完成的内容存入message变量,直接执行了打印操作。
解决方案

核心是规避字符串内外引号冲突,同时补充message变量的赋值逻辑,有3种常用实现方式:

  • 方案1:转义内部冲突的单引号
glorious = "Allah"
# 对内部单引号加反斜杠转义
message = f'{glorious} said,"Don\'t lose hope,nor be sad."'
print(message)
  • 方案2:外层使用双引号包裹f-string
glorious = "Allah"
# 外层用双引号,和内部的单引号不冲突,只需要转义内部的双引号即可
message = f"{glorious} said,\"Don't lose hope,nor be sad.\""
print(message)
  • 方案3:使用三引号包裹f-string,无需额外转义
glorious = "Allah"
message = f'''{glorious} said,"Don't lose hope,nor be sad."'''
print(message)

以上三种方案运行后均可输出正确结果:Allah said,"Don't lose hope,nor be sad."

内容的提问来源于stack exchange,提问作者Tahsin Subah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:00:00