这是不是 Python 的一个 bug?

2017-07-30 10:30:12 +08:00
 lleon
>>> print(r'why\')

SyntaxError: EOL while scanning string literal\
>>>

正常不是应该输出 why\吗?
4124 次点击
所在节点    Python
25 条回复
ysc3839
2017-07-30 23:29:27 +08:00
@ksij print(r"test" + "\\")
zhangmiaoCHN
2017-07-31 09:00:23 +08:00
根本原因是 \" 和 \' ,这两个与 \t 和 \n 一样,是转义字符。
实际上,这的确是语言的一个 Bug,只不过被洗白成了特性。
zhuangzebo0
2017-07-31 09:25:55 +08:00
不算,正确的应该是 r'why\\'.
\把'转义了。
araraloren
2017-07-31 11:39:42 +08:00
也许设计的时候没考虑到,于是把这个写到文档里面变成了一个例外。。
类似于,Perl 6 的 Q 无视任何转义字符

say Q{There is a backslash in the end \}; #
araraloren
2017-07-31 11:40:28 +08:00
接上文 ~~ 漏了个 C#

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/378965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX