我正在使用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/

10-16 06:05