2

我有以下两个变量:

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

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

4

3 回答 3

3

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

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

如果您想要一个 unicode 字符串作为结果,您也可以使用unicode-escape而不是。string-escape

于 2012-08-01T21:05:44.510 回答
2

查看字符串文字的文档。

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

  • 转义反斜杠:

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

    b = r'\x11'
    

如果我误解了您的问题并且b应该是'\x11'或等效地chr(17),但您只是希望它以转义格式显示,您可以使用repr()

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

如果您不想要引号,请使用string_escape 编码

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

或者要得到a一样的b,可以使用a.decode('string_escape')

于 2012-08-01T20:57:13.510 回答
0

\x11似乎是^QASCII 控制字符的十六进制值:

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

您需要转义\以获得文字\x11

于 2012-08-01T20:58:11.873 回答