我在 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/