代码之家  ›  专栏  ›  技术社区  ›  funklute

为什么python会在\i[重复]中添加另一个反斜杠

  •  0
  • funklute  · 技术社区  · 9 年前

    我以为我理解反斜杠转义,但我不理解这种行为:

    foo = '\t'
    

    给出相同的字符串(即。 \t )当我键入 foo 在Python解释器中,而

    bar = '\i'
    

    给予 \\i 。发生了什么?我想要 \i ,因为我正在给 .tex 我正在编译的文件,这似乎会搞乱LaTeX命令。

    编辑:事实上,并不是这件事弄乱了我的乳胶,正如下面的答案所示

    1 回复  |  直到 9 年前
        1
  •  1
  •   user1907906 user1907906    9 年前

    "\t" 是制表符(一个字符), "\i" 包含 字符,第一个字符由转义 __repr__ .

    In [51]: len("\t")
    Out[51]: 1
    
    In [52]: len("\i")
    Out[52]: 2
    

    编辑: 如果你写一个文件,你的输出会很好。

    with open("o.tex", "w") as o:
        o.write(">>>\t|\i|\t<<<\n")
    

    的内容 o.tex 将是

    >>>     |\i|    <<<
    

    您可以看到两个选项卡 \t 作为空白,而所有其他字符都是原样。