浅谈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中列表元素转为数字的方法分析
Jun 14 Python
在django中使用自定义标签实现分页功能
Jul 04 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
Python3实现腾讯云OCR识别
Nov 27 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
Python telnet登陆功能实现代码
Apr 16 Python
python自动化调用百度api解决验证码
Apr 13 Python
python实战之90行代码写个猜数字游戏
Apr 22 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+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
可输入的下拉框
2006/06/19 Javascript
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
2015/06/17 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
对VUE中的对象添加属性
2018/09/18 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
教师自荐信范文
2013/12/09 职场文书
分层教学实施方案
2014/03/19 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
关于运动会的口号
2014/06/07 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
甜品店创业计划书
2014/09/21 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
python文件与路径操作神器 pathlib
2022/04/01 Python