Discuss / Python / 想请教下,为什么用 r'' 不能输出奇数个 \ 呢?

想请教下,为什么用 r'' 不能输出奇数个 \ 呢?

Topic source

vvvhyx

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

print(r'\\') File "<stdin>", line 1 print(r'\\') ^ SyntaxError: EOL while scanning string literal

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]
>>> print(r'\\')
\\

斥_斥

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

我的print(r'\') 输出就是:\ 没有问题啊。

我看到题主的问题,自己试了下,直接1个print的话,确实无法输出奇数个\; 我用的shell;

可惜无法配图 @廖雪峰

黑版大熊

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

print(r'\')的确是会报错的。 我的理解是: r''只是将单引号里存在的转义操作取消,而这个例子里单引号区域内只有转义符\,故r''无法发挥作用,解释器就理解为r'\'这个字符串少了单引号或者双引号来包括,故报错。

支持,很有说服力的理解!

黑版大熊

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

修改一下: 解释器就理解为r'\'是一个字符串,语法上少了单引号或者双引号来包括,故报错。

黑版大熊

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

再次修改.. 刚再试了一遍,看了看报错,觉得解释器是 将r'\'理解为: 先执行\'将'转义出来了, 所以接下来语法r''便少了第二个单引号。 报错。 以上皆个人猜测 -_-


  • 1
  • 2

Reply