In[1] : '\"""'
Out[1]: '"""'
In[2] : "\""""
Out[2]: '"'
在以下示例中(我正在使用python 3),为什么更改用于括起字符串的引号类型会更改字符串的实际值?我希望"\""""=='\"""'
是正确的,但这是错误的。为什么第二个示例只返回单引号?谢谢!
答案 0 :(得分:3)
表达式"\""""
是两个字符串文字,"\""
和""
(或'"'
和''
,为了清晰起见,切换到单引号),它们连接在一起。 '\"""'
的双引号等效为"\"\"\""
。
>>> ("\""
... ""
... )
'"'
>>> "\"\"\""
'"""'
答案 1 :(得分:1)
In [2]实际上是两个相邻的字符串,类似于"foo""bar"
。
"\""""
包含第一个字符串"\""
和第二个字符串""
。
在评估时,Python将它们串联起来:
In[1]: "foo""bar"
Out[1]: 'foobar'
在您的情况下,由于第二个字符串为空,因此只需获取第一个。
答案 2 :(得分:1)
在字符串连接方面,Python的功能与C相同:
'hello' 'world' == 'helloworld'
也就是说,如果您将两个带引号的字符串文字彼此相邻放置,并且中间没有任何内容,则它们将被串联在一起。这就是1
和2
之间的区别:
In[2] : "\"""" --> "\"" ""
因此,您的第二个输入实际上是将字符串"
与空字符串连接起来。
答案 3 :(得分:1)
单引号只能以其他单引号结尾
因此'\"
不是字符串,然后python等待另一个'
完成字符串
所以'\"""'
是一个字符串,而"\""""
是两个字符串,"\""
和""
然后结果为"""
,因为python必须在字符串对象中使用\"""
,而另一个只是一个带有空字符串的“”。
我希望我的答案很清楚,用所有这些引号都不容易解释