What's the point of chr(128) .. chr(255) in Python?
编辑:我正在谈论Python 2.7中的行为。
1 2 | >>> chr(65) 'A' |
我了解到它在某些情况下是有用的,并且我理解了为什么它覆盖了0..127(7位ASCII范围)。
该函数还接受来自128..255的参数。 对于这些数字,它仅返回参数的十六进制表示形式。 在此范围内,取决于使用ISO-8859标准的哪个部分,不同的字节表示不同的含义。
我想知道
1 2 | >>> chr(228, encoding='iso-8859-1') # hypothetical '?' |
但是,没有这样的选择:
1 2 3 | chr(i) -> character Return a string of one character with ordinal i; 0 <= i < 256. |
我的问题是:为
在Python 2.x中,
1 | unicode(chr(200), encoding="latin1") |
在Python 3.x中,
请注意,python 2字符串处理已损坏。这是我建议切换到python 3的原因之一。
在python 2中,字符串类型旨在表示文本字符串和二进制字符串。因此,chr()用于将整数转换为字节。它与文本,ASCII或ISO-8859-1无关。这是字节的二进制流:
1 2 3 | binary_command = chr(100) + chr(200) + chr(10) device.write(binary_command) etc() |
在python 2.7中,增加了bytes()类型是为了与python 3向前兼容,并且它映射到str()。
我明白您的意思,但这是不正确的。在Python 3.4中,
Return the string representing a character whose Unicode codepoint is the integer i.
以下是一些示例:
1 2 3 4 | >>> chr(15000) '?' >>> chr(5000) '?' |
在Python 2.x中,它是:
Return a string of one character whose ASCII code is the integer i.
函数
即使在Unicode中,ASCII集也只能定义为128个字符,而不是256个字符,因此没有(不是)让