有没有了解 python 的大神帮我回答这个问题

2016-10-13 15:00:41 +08:00
 fjhmx

这个是我在 python 自带的 idle 中敲了下列代码,结果为什么是这样?

2384 次点击
所在节点    程序员
13 条回复
fjhmx
2016-10-13 15:03:17 +08:00
为什么不是'\\nihao'???
Trim21
2016-10-13 15:07:21 +08:00
因为不是 print 内容,没必要转义
Trim21
2016-10-13 15:08:46 +08:00
因为不是要打印这个字符串,所以没必要把转义字符转义之后再输出,这里只是提示一下这个变量是啥而已
Zzzzzzzzz
2016-10-13 15:09:41 +08:00
要转义引号前加 r
你这里\n 是换行, 要是 print 就是换个行然后 ihao
fjhmx
2016-10-13 15:12:46 +08:00
@Trim21 那输入'\KKK',为什么结果又是'\\KKK'?
fjhmx
2016-10-13 15:14:02 +08:00
@Zzzzzzzzz rawString 不是应该是不转义才用?
popu111
2016-10-13 15:33:07 +08:00
并没有为\K 的转义符,故 Python 认为你是想输入一个\,自动帮你插入了(我也懒得试了,只看楼主的描述回答,不正确的话还请谅解
yangtukun1412
2016-10-13 15:33:45 +08:00
可以看下 Python 源码中的 PyString_DecodeEscape() 函数, 对非 escape 字符会将 \ 处理为 \\.
tankb52
2016-10-13 15:36:53 +08:00
@fjhmx
第一个反斜杠是为了转义第二个反斜框

参见 https://www.v2ex.com/t/234313
jugelizi
2016-10-13 15:58:17 +08:00
不要在交互模式下写代码
coroutine
2016-10-13 16:14:44 +08:00
→_→ 为什么说的那么麻烦的样子。

"\n"是有特殊含义的(换行)。
你 print 的时候,就会发现 \n 代表换行了→_→

而由于反斜杠加上其他字符有特殊含义,所以你真的要写包含反斜杠(就是你的\KKKK 中的)的时候,需要把这个转义。所以你就看到了两根反斜杠→_→ 第一个反斜杠 用于 转义你真的想表达的那根第二个反斜杠。
introom
2016-10-13 16:33:07 +08:00
为什么要动不动称呼大神,就好像罗湖过关的时候,收购的贩子看到你手里拿着奶粉就会很殷切地喊你靓仔一个道理么?
Zzzzzzzzz
2016-10-13 19:50:14 +08:00
@fjhmx 单引号不转义的是 perl 和 php 啊, python 转的啊.

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

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

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

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

© 2021 V2EX