编辑:我在谈论Python 2.7中的行为.
该chr函数将0到127之间的整数转换为ASCII字符.例如
>>> chr(65)
'A'
Run Code Online (Sandbox Code Playgroud)
我知道这在某些情况下是如何有用的,我理解为什么它涵盖了0..127,7位ASCII范围.
该函数还接受128..255的参数.对于这些数字,它只返回参数的十六进制表示.在此范围内,根据ISO-8859标准的哪个部分使用,不同的字节意味着不同的东西.
我知道如果chr再拿一个论点,比如说
>>> chr(228, encoding='iso-8859-1') # hypothetical
'ä'
Run Code Online (Sandbox Code Playgroud)
但是,没有这样的选择:
chr(i) -> character
Return a string of one character with ordinal i; 0 <= i < 256.
Run Code Online (Sandbox Code Playgroud)
我的问题是:什么是养点ValueError进行i > 255,而不是i > 127?所有函数128 <= i < 256都是返回十六进制值?
kin*_*all 10
在Python 2.x中,a str是一个字节序列,因此chr()返回一个字节的字符串并接受0-255范围内的值,因为这是一个可由字节表示的范围.当您打印repr()字符串在128-255范围内的字符串时,字符以转义格式打印,因为没有标准方法来表示此类字符(ASCII仅定义0-127).unicode()但是,您可以使用它将其转换为Unicode ,并指定源编码:
unicode(chr(200), encoding="latin1")
Run Code Online (Sandbox Code Playgroud)
在Python 3.x中,str是一系列Unicode字符,chr()需要更大的范围.字节由bytes类型处理.
| 归档时间: |
|
| 查看次数: |
11017 次 |
| 最近记录: |