Discuss / Python / r' '遇到问题求大神解答

r' '遇到问题求大神解答

Topic source

橙筱娴

#1 Created at ... [Delete] [Delete and Lock User]

print (r\'Hello, ''Bart''') print (r\'Hello, Bart') print (r\'Hello, 'Bart'') 为什么第一个和第二个均能输出Hello, Bart 第三个不行

橙筱娴

#2 Created at ... [Delete] [Delete and Lock User]
  • r后面没有转义符\,这个地方打错了

斥_斥

#3 Created at ... [Delete] [Delete and Lock User]

同学你好,是这样的,Python的解释器,对于print()里的字符串会这样判断:

首先,遇到第一个单引号',接着会去找第二个单引号,找到的话就把两个单引号之间的内容打印出来。

接着,如果第二个单引号后面还有一个单引号,就会把那个单引号继续当成第一个单引号,然后继续找第二个单引号。

最终其实就是打印了两个字符串。

比如你的第一条字符串:print (r'Hello, ''Bart'''),其实是打印了三个字符串。

第一是:Hello,空格。 第二个是:Bart。 第三个是一个空字符串。你可以在最后一对引号里输入aaa,这样再打印,就能看出来最终的打印结果其实是三个字符串拼起来的结果。

你的第三个例子,print (r\'Hello, 'Bart'')。当解释器打印完Hello,空格,之后,Bart并没有包含在一对单引号之间,所以解释器不知道该怎么处理,于是就会报错。


  • 1

Reply