【发布时间】:2016-02-22 15:55:45
【问题描述】:
我正在尝试将来自 raw_input() 的字符串转换为“字节字符串”。当我手动(在代码中)键入变量时,它工作正常,因为它返回的长度为 5。但是,当我尝试使用 raw_input() 输入“字节字符串”时,它返回的长度为 20。
>>> x='\xB2\xB2\xB3\xB4\x01'
>>> len(x)
5
>>> x=raw_input()
\xB2\xB2\xB3\xB4\x01
>>> len(x)
20
我想知道为什么会发生这种情况以及如何解决。提前致谢。
【问题讨论】:
-
raw_input() 是“原始”,因为文本在被解释为字符串之前没有被解析或转义。在命令提示符下将文本字符串分配给变量时,文本首先由 python 解释器处理,以便可以将特殊字符转换为适当的表示形式。
-
raw_input()将您的输入文学视为['\', 'x', 'B', '2' ... ]。字符串和字节数组在 Python 2.7 中是一样的。 -
你真的会输入“\x...”作为输入吗?您不想输入“²²³”,这会在内部产生与您的第一个
x相同的结果吗?
标签: python string python-2.7