浅谈Python中chr、unichr、ord字符函数之间的对比


Posted in Python onJune 16, 2016
  • ord是unicode ordinal的缩写,即编号
  • chr是character的缩写,即字符
  • ord和chr是互相对应转换的.
  • 但是由于chr局限于ascii,长度只有256,于是又多了个unichr.
>>c = u'康'

>>c
u'\u5eb7'
>>ord(c)
24747
>>chr(24247)
ValueError: chr() arg not in range(256)
>>unichr(24247)
u'\u5eb7'

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
Python 相关文章推荐
Python中使用不同编码读写txt文件详解
May 28 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
python之virtualenv的简单使用方法(必看篇)
Nov 25 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
根据tensor的名字获取变量的值方式
Jan 04 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
keras中的History对象用法
Jun 19 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
PyQt实现计数器的方法示例
Jan 18 Python
Python开发.exe小工具的详细步骤
Jan 27 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 #Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 #Python
Python黑魔法@property装饰器的使用技巧解析
Jun 16 #Python
Python实现类似jQuery使用中的链式调用的示例
Jun 16 #Python
浅析Python中else语句块的使用技巧
Jun 16 #Python
python基础教程之分支、循环简单用法
Jun 16 #Python
python3音乐播放器简单实现代码
Apr 20 #Python
You might like
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
小谈php正则提取图片地址
2014/03/27 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
初探nodeJS
2017/01/24 NodeJs
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
简单实现python画圆功能
2018/01/25 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
python3使用GUI统计代码量
2019/09/18 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
简单了解Django项目应用创建过程
2020/07/06 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
初中美术教学反思
2014/01/29 职场文书
给领导的检讨书
2014/02/16 职场文书
会计助理岗位职责
2014/02/17 职场文书
幼儿园家长寄语
2014/04/02 职场文书
信访工作经验交流材料
2014/05/23 职场文书
出售房屋委托书范本
2014/09/24 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
教师教育教学随笔
2015/08/15 职场文书