我有以下两个变种:
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相同的内容?提前谢谢。
答案 0 :(得分:3)
其他答案向您展示如何让b
为您提供a
中的内容。如果您希望a
为您提供b
中的内容(这就是您所要求的,如果我能正确读到您),则需要解码转义序列:
>>> a
u'\\x11'
>>> a.decode('string-escape')
'\x11'
如果您想要一个unicode字符串,也可以使用unicode-escape
代替string-escape
。
答案 1 :(得分:2)
查看string literals的文档。
反斜杠是Python字符串中的转义字符,因此要在字符串中包含文字反斜杠,您需要使用两个连续的反斜杠来转义它们。或者,您可以通过使用原始字符串文字来抑制反斜杠的转义行为,这可以通过在字符串前加r
来完成。例如:
转义反斜杠:
b = '\\x11'
使用原始字符串文字:
b = r'\x11'
如果我误解了您的问题且b
应该是'\x11'
或等效chr(17)
,但您只是希望它以转义格式显示,则可以使用repr()
为此:
>>> b = '\x11'
>>> print 'b is: ' + repr(b)
b is: '\x11'
如果您不想使用引号,请使用string_escape encoding:
>>> print 'b is: ' + b.encode('string_escape')
b is: \x11
或者要让a
与b
相同,您可以使用a.decode('string_escape')
。
答案 2 :(得分:0)
\x11
似乎是ASCII中^Q
控制字符的十六进制值:
\021 17 DC1 \x11 ^Q (Device control 1) (XON) (Default UNIX START char.)
您需要转义\
以获取文字\x11