为什么引号的类型会改变字符串的值? - Python
Why does the type of quote change the value of the string? - Python
In[1] : '\"""'
Out[1]: '"""'
In[2] : "\""""
Out[2]: '"'
在以下示例中(我在其中使用 python 3),为什么更改用于包含字符串的引号类型会更改字符串的实际值?我希望 "\""""=='\"""'
是真的,但它是假的。为什么第二个例子 return 只有一个双引号?谢谢!
表达式 "\""""
是两个字符串文字,"\""
和 ""
(或 '"'
和 ''
,为清楚起见切换为单引号),串联在一起。 '\"""'
的双引号等价物是 "\"\"\""
.
>>> ("\""
... ""
... )
'"'
>>> "\"\"\""
'"""'
In[2]其实就是两个相邻的字符串,类似于"foo""bar"
.
"\""""
包含第一个字符串 "\""
和第二个字符串 ""
.
评估时,Python 将它们连接起来:
In[1]: "foo""bar"
Out[1]: 'foobar'
在你的例子中,因为第二个字符串是空的,你只得到第一个。
Python 在字符串连接方面做一些与 C 相同的事情:
'hello' 'world' == 'helloworld'
也就是说,如果您将两个带引号的字符串文字并排放置,中间没有任何内容,它们将连接在一起。这是1
和2
的区别:
In[2] : "\"""" --> "\"" ""
因此您的第二个输入实际上是将字符串 "
与空字符串连接起来。
单引号只能以另一个单引号结尾,
因此 '\"
不是字符串 python 然后等待另一个 '
完成字符串
所以'\"""'
是一个字符串,"\""""
是两个字符串,"\""
和""
然后结果是 """
因为 python 必须在字符串对象中使用 \"""
,而另一个只是一个 " 与一个空字符串连接
我希望我的回答是清楚的,用这么多引号解释起来并不容易
In[1] : '\"""'
Out[1]: '"""'
In[2] : "\""""
Out[2]: '"'
在以下示例中(我在其中使用 python 3),为什么更改用于包含字符串的引号类型会更改字符串的实际值?我希望 "\""""=='\"""'
是真的,但它是假的。为什么第二个例子 return 只有一个双引号?谢谢!
表达式 "\""""
是两个字符串文字,"\""
和 ""
(或 '"'
和 ''
,为清楚起见切换为单引号),串联在一起。 '\"""'
的双引号等价物是 "\"\"\""
.
>>> ("\""
... ""
... )
'"'
>>> "\"\"\""
'"""'
In[2]其实就是两个相邻的字符串,类似于"foo""bar"
.
"\""""
包含第一个字符串 "\""
和第二个字符串 ""
.
评估时,Python 将它们连接起来:
In[1]: "foo""bar"
Out[1]: 'foobar'
在你的例子中,因为第二个字符串是空的,你只得到第一个。
Python 在字符串连接方面做一些与 C 相同的事情:
'hello' 'world' == 'helloworld'
也就是说,如果您将两个带引号的字符串文字并排放置,中间没有任何内容,它们将连接在一起。这是1
和2
的区别:
In[2] : "\"""" --> "\"" ""
因此您的第二个输入实际上是将字符串 "
与空字符串连接起来。
单引号只能以另一个单引号结尾,
因此 '\"
不是字符串 python 然后等待另一个 '
完成字符串
所以'\"""'
是一个字符串,"\""""
是两个字符串,"\""
和""
然后结果是 """
因为 python 必须在字符串对象中使用 \"""
,而另一个只是一个 " 与一个空字符串连接
我希望我的回答是清楚的,用这么多引号解释起来并不容易