我正在使用type()运算符在python shell中进行实验。我注意到:
type('''' string '''')
返回错误,无法扫描字符串
然而:
type(''''' string ''''')
工作正常,并响应已找到字符串。
到底是怎么回事?它与
type('''' string '''')
解释为type("" "" string "" "")
并因此无意义地连接空字符串和 undefined variable 有关吗? 最佳答案
您将以3个引号和一个加号结束一个字符串。这有效:
>>> ''''string'''
"'string"
换句话说,Python看到3个引号,然后字符串在接下来的3个引号结束。之后的所有内容都不再是字符串的一部分。
Python还串联了一个接一个的字符串:
>>> 'foo' 'bar'
'foobar'
所以
'''''string'''''
实际上就是'''''string''' + ''
;第一个字符串从右三个引号开始,直到找到三个右引号为止。然后,这三个结束引号后面再加上两个引号,形成一个单独的但为空的字符串:>>> '''''string'''
"''string"
>>> '''''string'''''
"''string"
>>> '''''string'''' - extra extra! -'
"''string - extra extra! -"
故事的寓意:Python仅支持三引号或单引号。任何与之背道而驰的事情只会导致痛苦。
关于python - 那么用4个引号引起的故事是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19937615/