浅谈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 yield使用方法示例
Dec 04 Python
python实现linux服务器批量修改密码并生成execl
Apr 22 Python
python异常和文件处理机制详解
Jul 19 Python
python切片及sys.argv[]用法详解
May 25 Python
python版飞机大战代码分享
Nov 20 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
django settings.py 配置文件及介绍
Jul 15 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 Python
django-csrf使用和禁用方式
Mar 13 Python
Python使用pyyaml模块处理yaml数据
Apr 14 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管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
PHP生成随机用户名和密码的实现代码
2013/02/27 PHP
php简单统计中文个数的方法
2016/09/30 PHP
详解PHP归并排序的实现
2016/10/18 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
Add a Table to a Word Document
2007/06/15 Javascript
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python实现删除文件与目录的方法
2014/11/10 Python
Python反射用法实例简析
2017/12/22 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
python 以16进制打印输出的方法
2018/07/09 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Python3离线安装Requests模块问题
2019/10/13 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
python如何停止递归
2020/09/09 Python
html5教程画矩形代码分享
2013/12/04 HTML / CSS
目标管理责任书
2014/04/15 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
党支部意见范文
2015/06/02 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
Golang 结构体数据集合
2022/04/22 Golang