为什么文字字符串 """"""" (七个引号)会出错?[重复]

2024-01-08

处理客户的输入我们经常使用strip()方法。如果我们想从某个特定集合中删除开始结束符号,我们只需将其全部放入参数中即可。

代码:

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

显然给出'yes'字符串作为结果。
当我尝试删除集合时' ".结果取决于该符号顺序。变体".yes' ".strip(""" ."'""")当带有符号变体时工作正常"最后给出SyntaxError: unterminated string literal (detected at line 1).

为什么是文字字符串"""""""(使用七个引号)给出错误?都是一样的'"'!".

让我们看一下文档:

三引号:'''三个单引号''',"""三个双引号""" https://docs.python.org/3/library/stdtypes.html#textseq

and

Click here https://docs.python.org/3/reference/lexical_analysis.html#literals核实。所以

  1. longstring i.e. """longstringitem"""
  2. longstringitem可能是单个字符。

那么我们是否必须重写文档或解释器?

我已经在 Python 文档问题上注册了我的问题。可以看到here https://github.com/python/cpython/issues/103594.


这反映了根据 Python 语言规范记录的行为字符串的词法分析 https://docs.python.org/3/reference/lexical_analysis.html#strings:

在三引号文字中,允许(并保留)未转义的换行符和引号,但连续三个未转义的引号终止文字。 (“引号”是用于打开文字的字符,即 ' 或 "。)

这里的关键点是“连续三个未转义的引号终止文字”。所以如果你以文字开头""",这个字面值一旦另一个字面值结束"""遇到序列:解析器不会提前尝试推断文字的不同端点。

当解析器遇到"""""""(连续七个双引号),因此:

  1. 第一个、第二个和第三个字符告诉解析器它正在处理由三个双引号分隔的文字。
  2. 第四个、第五个和第六个字符构成了“三个未转义的引号”,因此它们终止了文字。
  3. 那么第 7 个字符是"没有跟随者"它可以配对,这样第七个字符就构成了一个未终止的文字。解析器失败SyntaxError: unterminated string literal.

值得一提的是,反斜杠转义仍然可以用来防止引号字符被视为引号。例如:

s = """\""""
print(s)

prints:

"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么文字字符串 """"""" (七个引号)会出错?[重复] 的相关文章

随机推荐

  • 使用 Caliburn.Micro 视图模型优先方法时如何在设计器中显示内容控制?

    我在 WPF 应用程序中使用 ViewModel first 方法使用 Caliburn Micro CM 我正在用命令栏和活动项目组成主视图 主 viewModel 设置命令栏 viewModel 的属性 并正确导航到活动项目 运行时一切
  • 如何缩放 UIButton 的 imageView?

    我使用以下命令创建了一个名为 button 的 UIButton 实例 其中包含图像 UIButton setImage forState Button frame 大于图像的大小 现在我想缩小这个按钮的图像 我尝试改变button ima
  • Typescript:如何基于数据结构生成和打印 AST

    我正在开始一个新项目 作为其界面的一部分 我们有一大堆 令牌 一个带有字符串值的递归对象 如下所示 const colors accent f90 primary active fff inactive silver 我们提供了一个实用程序
  • 使用 Eclipse AST

    我最近需要修改一些Java代码 添加方法 更改某些字段的签名和删除方法 我认为所有这些都可以通过使用Eclipse SDK的AST来完成 我从一些研究中知道如何解析源文件 但我不知道如何执行上述操作 有谁知道一个好的教程或者有人可以给我一个
  • kmean 需要三角不等式吗?

    我想知道对于 kmeans 中使用的距离度量是否需要三角不等式 k 均值是designed for 欧几里得距离 正好满足三角不等式 使用其他距离函数是有风险的 因为它可能会停止收敛 然而原因是not三角不等式 但是平均值可能不会最小化距离
  • Android Listview - 仅当用户停止滚动时将图像加载到项目中

    当用户快速滚动浏览项目时 开始请求图像来填充这些项目似乎是多余的 毕竟 用户滚动速度太快 它们永远不会被及时下载 显示 当用户实际暂停滚动时 是否有任何类型的方法 事件首先触发 尝试使用此代码来检测滚动停止 setOnScrollListe
  • 减少 WAV 声音文件大小,而不损失质量

    我的应用程序需要播放声音文件 我可以使用的唯一跨平台文件格式是 WAVE 我正在使用QSound http doc trolltech com 4 5 qsound html detailsQt 框架 这些声音的文件大小非常大 我想知道是否
  • InteractivePopGestureRecognizer 导致应用程序冻结

    在我的应用程序中 我有不同的控制器 当我将controller1推到导航控制器并滑动到后面时 一切正常 但是 如果我推导航控制器1 然后推入控制器1推控制器2并尝试向后滑动 我会得到一个冻结的应用程序 如果通过后退按钮返回一切正常 我怎样才
  • 如何在 Android Studio 运行时获取构建变体?

    我想在运行时获取构建变体 这是否可能不需要任何额外的配置或代码 查看生成的BuildConfig class public final class BuildConfig public static final boolean DEBUG
  • sqlite3_fts5使用标点符号时出错

    我有一个问题字符串变量 其中包含 我的车在哪里 一词 当我尝试对此运行选择时 它崩溃了 String sql Select from tblHALv2001 WHERE tblHALv2001 MATCH question fts5 附近的
  • plotly.js 中的分类轴顺序

    我有一个plotly js 条形图 我试图使 calcategories 轴的顺序正确 每个类别都有一个条形 但有时它们是绿色的 有时是黄色的 条形图应按从最高到最低的顺序排列 但情节似乎是根据不同的填充对它们进行排序 数据 var dat
  • 不可选择的下拉列表

    有没有什么方法可以让下拉列表中没有任何项目可供选择 所以基本上 我只是想用它作为显示 隐藏列表的一种方式 我不想要任何悬停突出显示 也不希望能够更改所选项目 您能否建议这是否可能 或者如果有人有任何其他想法来实现类似的目标 您能否给我指出一
  • 如何更改用户控件的访问修饰符

    我在 xaml 中创建了一个用户控件 将其命名为 View 在 View xaml cs 中 我将类 View 的访问修饰符更改为内部 internal partial class View ViewBase 更改访问修饰符后 编译器会显示
  • 如何在 linux (RedHat 6) 上检查 java 版本

    I am trying to check what java version I have installed in my linux machine I have tried which java 我得到 usr bin java 但是当
  • XAML - 设置样式后文本未显示在我的文本框中

    因此 我在正在开发的应用程序中设置了文本框的样式 突然间我看不到绑定到文本框的任何文本 我觉得我缺少某种 ContentPresenter 无论如何 这是样式
  • 如何对 kubernetes 中运行的 Inception 服务的部署进行故障排除

    我正在关注使用 TensorFlow Serving 和 Kubernetes 服务 Inception 模型 https tensorflow github io serving serving inception html当我尝试从本地
  • 类型没有成员

    我正在 Swift 游乐场上玩一个新课程 由于某种原因 我不断收到错误 该类 没有成员类型 其名称是前面三行定义的常量 这是代码 import Foundation class DataModel let myCalendar NSCale
  • 如何按名称或类型查找 WPF 控件?

    我需要在 WPF 控件层次结构中搜索与给定名称或类型匹配的控件 我怎样才能做到这一点 我将 John Myczek 使用的模板格式与上面的 Tri Q 算法结合起来 创建了一个可用于任何父级的 findChild 算法 请记住 向下递归搜索
  • 如何创建每行库存的二进制矩阵? (右)

    我有一个由 9 列组成的数据框 其中包含一系列因素 每行可以填充全部 9 列 因为该行包含 9 个 东西 但大多数没有 大多数有 3 4 个 这些列也不具体 就像第 200 项出现在第 1 列和第 3 列中一样 这是同一件事 我想为包含所有
  • 为什么文字字符串 """"""" (七个引号)会出错?[重复]

    这个问题在这里已经有答案了 处理客户的输入我们经常使用strip 方法 如果我们想从某个特定集合中删除开始结束符号 我们只需将其全部放入参数中即可 代码 yes strip 显然给出 yes 字符串作为结果 当我尝试删除集合时 结果取决于该