编辑:我在谈论Python 2.7中的行为。
chr
函数将0到127之间的整数转换为ASCII字符,例如:
>>> chr(65)
'A'
我了解在某些情况下这很有用,并且我理解为什么它覆盖0..127,即7位ASCII范围。
该函数还接受来自128..255的参数。对于这些数字,它只是返回参数的十六进制表示。在此范围内,不同的字节意味着不同的含义,具体取决于使用哪个ISO-8859标准的哪个部分。
如果chr
需要另一个参数,例如:
>>> chr(228, encoding='iso-8859-1') # hypothetical
'ä'
然而,目前没有这样的选项:
chr(i) -> character
Return a string of one character with ordinal i; 0 <= i < 256.
我的问题是:为什么在i > 255而不是i > 127时引发ValueError?对于128 <= i < 256,该函数只返回十六进制值,这有何意义?
print(str(c))
与print(repr(c))
进行对比。 - Duneschr(128)
=> '\x80',chr(129)
=> '\x81',等等。 - malanastr
也被用作字节数组。在这种情况下,需要一种方法来为一个字节可以取的所有可能值创建字符串值。 - Dunes