这两个字符串之间的区别?
The difference between these 2 strings?
我最近开始学习Python,希望您能帮我解决一个一直困扰我的问题。我一直在和 Learn Python The Hard Way 一起在线学习 Python。在练习 6 中,我遇到了一个问题,我在使用 %r
字符串格式化操作时产生了两个不同的字符串。当我打印一个字符串时,我得到了带有单引号 (' '
) 的字符串。另一个我得到双引号(" "
)。
代码如下:
x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary, do_not)
print "I said: %r." % x
print "I also said: %r." % y
第一个打印语句的结果:
I said: 'There are 10 types of people.'.
第二个打印语句的结果:
I also said: "Those who know binary and those who don't.".
我想知道为什么其中一个语句的结果带有单引号 (' '
) 而另一个带有 (" "
)。
]
P.S。我正在使用 Python 2.7.
%r
正在获取字符串的 repr
版本:
>>> x = 'here'
>>> print repr(x)
'here'
你看,单引号是常用的。但是,在 y
的情况下,字符串中有一个单引号(撇号)。好吧,通常定义对象的 repr
以便将其作为代码评估等于原始对象。如果 Python 使用单引号,则会导致错误:
>>> x = 'those who don't'
File "<stdin>", line 1
x = 'those who don't'
^
SyntaxError: invalid syntax
所以它使用双引号代替。
注意这一行 -> do_not = "don't"
。此字符串中有一个单引号,这意味着必须对单引号进行转义;否则 interpreter 会在哪里知道字符串 began 和 end 的位置? Python 知道用 ""
来表示这个字符串文字。
如果我们删除 '
,那么我们可以期望字符串周围有一个单引号:
do_not = "dont"
>>> I also said: 'Those who know binary and those who dont.'.
我最近开始学习Python,希望您能帮我解决一个一直困扰我的问题。我一直在和 Learn Python The Hard Way 一起在线学习 Python。在练习 6 中,我遇到了一个问题,我在使用 %r
字符串格式化操作时产生了两个不同的字符串。当我打印一个字符串时,我得到了带有单引号 (' '
) 的字符串。另一个我得到双引号(" "
)。
代码如下:
x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary, do_not)
print "I said: %r." % x
print "I also said: %r." % y
第一个打印语句的结果:
I said: 'There are 10 types of people.'.
第二个打印语句的结果:
I also said: "Those who know binary and those who don't.".
我想知道为什么其中一个语句的结果带有单引号 (' '
) 而另一个带有 (" "
)。
]
P.S。我正在使用 Python 2.7.
%r
正在获取字符串的 repr
版本:
>>> x = 'here'
>>> print repr(x)
'here'
你看,单引号是常用的。但是,在 y
的情况下,字符串中有一个单引号(撇号)。好吧,通常定义对象的 repr
以便将其作为代码评估等于原始对象。如果 Python 使用单引号,则会导致错误:
>>> x = 'those who don't'
File "<stdin>", line 1
x = 'those who don't'
^
SyntaxError: invalid syntax
所以它使用双引号代替。
注意这一行 -> do_not = "don't"
。此字符串中有一个单引号,这意味着必须对单引号进行转义;否则 interpreter 会在哪里知道字符串 began 和 end 的位置? Python 知道用 ""
来表示这个字符串文字。
如果我们删除 '
,那么我们可以期望字符串周围有一个单引号:
do_not = "dont"
>>> I also said: 'Those who know binary and those who dont.'.