浅谈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的加密模块md5、sha、crypt使用实例
Sep 28 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
python将ansible配置转为json格式实例代码
May 15 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
python机器学习理论与实战(一)K近邻法
Jan 28 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
Python配置文件处理的方法教程
Aug 29 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 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批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
使用Python开发windows GUI程序入门实例
2014/10/23 Python
python集合用法实例分析
2015/05/30 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
党员培训思想汇报
2014/01/07 职场文书
保险公司年会主持词
2014/03/22 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
Django如何创作一个简单的最小程序
2021/05/12 Python