Vas*_*ets -7 python string literals
处理客户的输入我们经常使用该strip()方法。如果我们想从某个特定集合中删除起始符号,我们只需将其全部放入参数中即可。
代码:
".yes' ".strip(". '")
Run Code Online (Sandbox Code Playgroud)
显然给出了'yes'字符串作为结果。
当我尝试删除集合时,' ".结果取决于此符号顺序。当末尾".yes' ".strip(""" ."'""")带有符号的变体给出 .Variant 时,变体 可以正常工作。"SyntaxError: unterminated string literal (detected at line 1)
为什么文字字符串"""""""(使用七个引号)会出错?都是一样的'"'!"。
让我们看一下文档:
和
单击此处进行验证。所以
longstringIE """longstringitem"""longstringitem 可能是单个字符。那么我们是否必须重写文档或解释器?
我已经在 Python 文档问题上注册了我的问题。可以看这里。
这反映了根据 Python 语言规范围绕字符串词法分析记录的行为:
\n\n\n在三引号文字中,允许(并保留)未转义的换行符和引号,但连续三个未转义的引号终止文字。(\xe2\x80\x9cquote\xe2\x80\x9d 是用于打开文字的字符,即 \' 或 "。)
\n
这里的关键点是“连续三个未转义的引号终止文字”。因此,如果您以 开始文字""",则一旦"""遇到另一个序列,该文字就会结束:解析器不会提前查看以尝试推断文字的不同端点。
当解析器遇到"""""""(连续七个双引号)时,因此:
"没有"可以与之配对的字符,因此第 7 个字符构成一个未终止的文字。解析器失败并显示SyntaxError: unterminated string literal.值得一提的是,反斜杠转义仍然可以用来防止引号字符被视为引号。例如:
\ns = """\\""""\nprint(s)\nRun Code Online (Sandbox Code Playgroud)\n印刷:
\n"\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
442 次 |
| 最近记录: |