fro*_*eas 5 python string quotes python-2.7
我正在使用type()运算符在python shell中进行实验.我注意到:
type('''' string '''')
Run Code Online (Sandbox Code Playgroud)
返回错误,扫描字符串时出错
然而:
type(''''' string ''''')
Run Code Online (Sandbox Code Playgroud)
工作正常,并回应找到一个字符串.
到底是怎么回事?它是否与type('''' string '''')被解释为的事实有关type("" "" string "" ""),因此是空字符串和未定义变量的无意义串联?
Mar*_*ers 11
您正在以3个引号结束一个字符串,另外还有一个额外的字符串 这有效:
>>> ''''string'''
"'string"
Run Code Online (Sandbox Code Playgroud)
换句话说,Python看到3个引号,然后字符串在接下来的 3个引号结束.之后的任何内容都不再是字符串的一部分.
Python还连接一个接一个地放置的字符串:
>>> 'foo' 'bar'
'foobar'
Run Code Online (Sandbox Code Playgroud)
所以'''''string'''''意味着'''''string''' + ''真的; 第一个字符串在开头3引号后立即开始,直到找到3个结束引号.接下来是两个引号,然后是另外两个引号形成一个单独但空的字符串:
>>> '''''string'''
"''string"
>>> '''''string'''''
"''string"
>>> '''''string'''' - extra extra! -'
"''string - extra extra! -"
Run Code Online (Sandbox Code Playgroud)
故事的道德:Python只支持三重或单引号.任何与此相反的事情都只会导致痛苦.