Python 这两个字符串之间的区别是什么?
我最近开始学习Python,我希望您能够帮助我解决一个困扰我的问题。我一直在网上学习Python。在练习6中,我遇到了一个问题,我使用了Python 这两个字符串之间的区别是什么?,python,string,printing,string-formatting,Python,String,Printing,String Formatting,我最近开始学习Python,我希望您能够帮助我解决一个困扰我的问题。我一直在网上学习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
%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
第一条打印语句的结果:
我说:“有10种类型的人。”
第二条打印语句的结果:
我还说:“懂二进制的和不懂二进制的。”
我想知道为什么其中一条语句的结果是单引号('
),而另一条语句的结果是('
)。
]
另外,我正在使用Python 2.7。%r
正在获取字符串的repr
版本:
>>> x = 'here'
>>> print repr(x)
'here'
你看,单引号是常用的。但是,对于y
,字符串中只有一个引号(撇号)。嗯,一个对象的repr
通常是这样定义的,以便将其作为代码计算等于原始对象。如果Python使用单引号,则会导致错误:
>x='那些不
文件“”,第1行
x='那些不知道的人
^
SyntaxError:无效语法
因此它使用了双引号。注意这一行->do\u not=“don”
。这个字符串中有一个单引号,这意味着必须转义单引号;否则,解释器从哪里知道字符串的开始和结束?Python知道使用“
来表示这个字符串文本
如果删除”
,则字符串周围会出现一个引号:
>>> x = 'here'
>>> print repr(x)
'here'
do\u not=“dont”
>>我还说:“懂二进制和不懂二进制的人。”