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

为何七个双引号组成的Python字面量字符串会触发语法错误?

Python strip() 参数的字符串字面量语法异常问题

处理客户端输入时,我们常使用strip()方法移除字符串首尾的指定字符集合——只需把目标字符传入参数即可。

举个例子:

".yes' ".strip(". '")

这段代码会返回结果'yes',符合预期。

但当需要移除的字符集合是' ".时,符号顺序会影响语法正确性:

  • ".yes' ".strip(""" ."'""") 可以正常运行
  • 但如果把"放在末尾,写成包含七个双引号的字面量""""""""时,会触发语法错误:SyntaxError: unterminated string literal (detected at line 1)

按三引号字符串的定义逻辑,七个双引号的字面量本应等同于'"',为什么会报错?

查阅Python文档可知:

  1. 三引号字符串的定义为'''三个单引号'''或"""三个双引号"""
  2. 语言参考中说明longstring即"""longstringitem""",且longstringitem可以是单个字符

这就引出疑问:到底是文档的定义需要修正,还是解释器的语法处理存在问题?

我已在CPython的官方issue中提交了该问题。

内容的提问来源于stack exchange,提问作者Vasyl Kolomiets

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:42:02