我有以下两个变量:
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 相同的内容?先感谢您。
其他答案正在向您展示如何让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'
如果您不想要引号,请使用string_escape 编码:
>>> print 'b is: ' + b.encode('string_escape')
b is: \x11
或者要得到a
一样的b
,可以使用a.decode('string_escape')
。
\x11
似乎是^Q
ASCII 控制字符的十六进制值:
\021 17 DC1 \x11 ^Q (Device control 1) (XON) (Default UNIX START char.)
您需要转义\
以获得文字\x11