python - 那么有 4 个引号的故事是什么?

标签 python string python-2.7 quotes

我在 python shell 中使用 type() 运算符进行试验。我注意到:

type('''' string '''') 

返回扫描字符串时遇到的错误

还有:

type(''''' string ''''')

工作正常并响应找到一个字符串。

这是怎么回事?它是否与 type('''' string '''') 被解释为 type(""""string """") 这一事实有关因此空字符串和 undefined variable 的无意义连接?

最佳答案

你用 3 个引号结束一个字符串,再加上 一个。这有效:

>>> ''''string'''
"'string"

换句话说,Python 看到 3 个引号,然后字符串在 下一个 3 个引号处结束。之后的任何内容都不再是字符串的一部分。

Python 还会连接一个接一个放置的字符串:

>>> 'foo' 'bar'
'foobar'

所以 '''''string''''' 意味着 '''''string''' + '' 真的;第一个字符串在开始的 3 个引号之后开始,直到找到 3 个结束引号。这三个结束引号之后是另外两个引号,形成一个单独但空的字符串:

>>> '''''string'''
"''string"
>>> '''''string'''''
"''string"
>>> '''''string'''' - extra extra! -'
"''string - extra extra! -"

故事的寓意:Python 只支持三引号或单引号。任何背离这一点的行为都只会导致痛苦。

关于python - 那么有 4 个引号的故事是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937615/

相关文章:

python - 如何让程序不抛出 "Error: Can' t load Floyd's algorithm library”

python - python中打印时的字符串对齐

python - 使用 Python 将图像上传到 Instagram

python - Python中BeautifulSoup的中文字符编码错误?

python - webbrowser.get — 找不到可运行的浏览器

Python。将 2 个列表转换为一个字典对象

Javascript:确定字符串中的所有字符是否都是唯一的,如果不是,则删除重复的字符

google-app-engine - 您可以在 App Engine 上将 verbatim 标签与 Django 1.5 一起使用吗?

python - 如何从 node.js 调用外部脚本/程序

javascript - 根据输入设计自定义文件编号字符串