在处理某些问题时生成不同的字符串组合, 遵守以下行为
In [3]: str = 'abcd'
In [4]: str
Out[4]: 'abcd'
In [5]: str = 'ab'cd'
------------------------------------------------------------
File "<ipython console>", line 1
str = 'ab'cd'
^
SyntaxError: invalid syntax
In [6]: str = 'ab''cd'
In [7]: str
Out[7]: 'abcd'
我知道单引号字符串中间可以包含双引号的情况,而双引号字符串可以保存单引号。
有人可以解释一下,为什么我们观察这种行为,里面单引号字符串允许两个同时单引号,但单引号不行。
答案 0 :(得分:8)
Python隐式连接附近的字符串,它们之间没有任何内容。观察:
>>> 'hel' 'lo'
'hello'
>>> 'cat' 'egory'
'category'
>>> 'ab''cd'
'abcd'
具有奇数个引号的字符串是不明确的,因此不允许。
>>> 'ab'cd' # Here `cd` is a bareword and ' starts an unterminated string
File "<stdin>", line 1
'ab'cd'
^
SyntaxError: invalid syntax
>>> 'ab\'cd' # The middle single quote is escaped so this is OK
"ab'cd"
这可能是一种&#34;陷阱&#34;当你忘记逗号时处理列表:
>>> ['a', 'b', 'c' 'd', 'e'] # no comma between 'c' and 'd'
['a', 'b', 'cd', 'e']