• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fjhmx
V2EX  ›  程序员

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

  •  
  •   fjhmx · Oct 13, 2016 · 3519 views
    This topic created in 3677 days ago, the information mentioned may be changed or developed.

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

    暂时不知道为何的问题

    13 replies  •  2016-10-13 19:50:14 +08:00
    fjhmx
    fjhmx
    OP
    Oct 13, 2016
    1
    为什么不是'\\nihao'???
    Trim21
    Trim21
    Oct 13, 2016 via Android
    2
    因为不是 print 内容,没必要转义
    Trim21
    Trim21
    Oct 13, 2016 via Android
    3
    因为不是要打印这个字符串,所以没必要把转义字符转义之后再输出,这里只是提示一下这个变量是啥而已
    Zzzzzzzzz
    Zzzzzzzzz
    Oct 13, 2016
    4
    要转义引号前加 r
    你这里\n 是换行, 要是 print 就是换个行然后 ihao
    fjhmx
    fjhmx
    OP
    Oct 13, 2016
    5
    @Trim21 那输入'\KKK',为什么结果又是'\\KKK'?
    fjhmx
    fjhmx
    OP
    Oct 13, 2016
    6
    @Zzzzzzzzz rawString 不是应该是不转义才用?
    popu111
    popu111
    Oct 13, 2016
    7
    并没有为\K 的转义符,故 Python 认为你是想输入一个\,自动帮你插入了(我也懒得试了,只看楼主的描述回答,不正确的话还请谅解
    yangtukun1412
    yangtukun1412
    Oct 13, 2016
    8
    可以看下 Python 源码中的 PyString_DecodeEscape() 函数, 对非 escape 字符会将 \ 处理为 \\.
    tankb52
    tankb52
    Oct 13, 2016
    9
    @fjhmx
    第一个反斜杠是为了转义第二个反斜框

    参见 https://www.v2ex.com/t/234313
    jugelizi
    jugelizi
    Oct 13, 2016
    10
    不要在交互模式下写代码
    coroutine
    coroutine
    Oct 13, 2016
    11
    →_→ 为什么说的那么麻烦的样子。

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

    而由于反斜杠加上其他字符有特殊含义,所以你真的要写包含反斜杠(就是你的\KKKK 中的)的时候,需要把这个转义。所以你就看到了两根反斜杠→_→ 第一个反斜杠 用于 转义你真的想表达的那根第二个反斜杠。
    introom
    introom
    Oct 13, 2016 via Android
    12
    为什么要动不动称呼大神,就好像罗湖过关的时候,收购的贩子看到你手里拿着奶粉就会很殷切地喊你靓仔一个道理么?
    Zzzzzzzzz
    Zzzzzzzzz
    Oct 13, 2016
    13
    @fjhmx 单引号不转义的是 perl 和 php 啊, python 转的啊.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1454 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 16:07 · PVG 00:07 · LAX 08:07 · JFK 11:07
    ♥ Do have faith in what you're doing.