Python转义序列和字符串操作



我有以下两个变量:

a = chr(92) + 'x11'
b = 'x11'
print 'a is: ' + a
print 'b is: ' + b

这些打印状态的结果:

a is: x11
b is: <|        # Here I am just showing a representation of the symbol that is printed for b

如何使用chr(92)调用使变量a打印与var b相同的内容?提前谢谢。

其他答案将向您展示如何使b提供您在a中获得的内容。如果你想让a给你在b中得到的东西(如果我没看错的话,这就是你的要求),你需要解码转义序列:

>>> a
u'\x11'
>>> a.decode('string-escape')
'x11'

如果需要unicode字符串作为结果,也可以使用unicode-escape而不是string-escape

查看文档中的字符串文字。

反斜杠是Python字符串中的转义符,因此要在字符串中包含一个字面反斜杠,需要使用两个连续的反斜杠对其进行转义。或者,您可以通过使用原始字符串文字来抑制反斜杠的转义行为,这是通过在字符串前面加上r来完成的。例如:

  • 转义反斜杠:

    b = '\x11'
    
  • 使用原始字符串文字:

    b = r'x11'
    

如果我误解了你的问题,b应该是'x11'或等效的chr(17),但你只是想让它以转义格式显示,你可以使用repr()

>>> b = 'x11'
>>> print 'b is: ' + repr(b)
b is: 'x11'

如果不需要引号,请使用字符串转义编码:

>>> print 'b is: ' + b.encode('string_escape')
b is: x11

或者,要使ab相同,可以使用a.decode('string_escape')

x11似乎是ASCII中^Q控制字符的十六进制值:

21  17  DC1  x11  ^Q    (Device control 1) (XON) (Default UNIX    START char.)

您需要转义以获得文字x11

最新更新