这是不是 Python 的一个 bug?

2017 年 7 月 30 日
 lleon
>>> print(r'why\')

SyntaxError: EOL while scanning string literal\
>>>

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

say Q{There is a backslash in the end \}; #
araraloren
2017 年 7 月 31 日
接上文 ~~ 漏了个 C#

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

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

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

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

© 2021 V2EX