浅谈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中字符串的常见操作技巧总结
Jul 28 Python
python+opencv实现动态物体识别
Jan 09 Python
Python实现PS滤镜的旋转模糊功能示例
Jan 20 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
python编辑用户登入界面的实现代码
Jul 16 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
详解Python3 对象组合zip()和回退方式*zip
May 15 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
python递归法实现简易连连看小游戏
Mar 25 Python
django写用户登录判定并跳转制定页面的实例
Aug 21 Python
python自动识别文本编码格式代码
Dec 26 Python
Python如何配置环境变量详解
May 18 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横向重复区域显示二法
2008/09/25 PHP
关于尾递归的使用详解
2013/05/02 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
javascript网页关键字高亮代码
2008/07/30 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
java直接调用python脚本的例子
2014/02/16 Python
python复制文件的方法实例详解
2015/05/22 Python
Python读写文件方法总结
2015/06/09 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
关于Java finally的面试题
2016/04/27 面试题
资深财务管理人员自我评价
2013/09/22 职场文书
普通党员对照检查材料
2014/08/28 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
2015年新农合工作总结
2015/03/30 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
docker 制作mysql镜像并自动安装
2022/05/20 Servers