python学习笔记 --- python中使用哈希方法处理字符与数字,ord()等函数详解

来源:互联网 发布:看腐剧用什么软件 编辑:程序博客网 时间:2024/05/21 12:13

在我们 coding 的时候时常利用 ascii 码将字符转换成为 数字形成哈希算法的下标。但在许多语言中实现方式是不同的。

基本思路为

差值 = ‘B’ - ‘A’

但在python中却无法使用,而是需要使用函数将字符与数字相互转换。


chr()、unichr()和ord()


chr()函数,用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。


unichr()跟它一样,只不过返回的是Unicode字符,这个从Python 2.0才加入的unichr()的参数范围依赖于你的Python是如何被编译的。如果是配置为USC2的Unicode,那么它的允许范围就是range(65536)或0x0000-0xFFFF;如果配置为UCS4,那么这个值应该是range(1114112)或0x000000-0x110000。如果提供的参数不在允许的范围内,则会报一个ValueError的异常。


ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常。



>>> chr(65)'A'>>> ord('a')97>>> unichr(12345)u'\u3039'>>> chr(12345)Traceback (most recent call last):   File "<stdin>", line 1, in ?         chr(12345)ValueError: chr() arg not in range(256)>>> ord(u'\ufffff')Traceback (most recent call last):   File "<stdin>", line 1, in ?     ord(u'\ufffff')TypeError: ord() expected a character, but string of length 2 found>>> ord(u'\u2345')9029


0 0
原创粉丝点击