浅谈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 24 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 Python
Random 在 Python 中的使用方法
Aug 09 Python
使用python读取.text文件特定行的数据方法
Jan 28 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
python中列表的含义及用法
May 26 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
python计算auc的方法
Sep 09 Python
pycharm 如何取消连按两下shift出现的全局搜索
Jan 15 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 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将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
javascript 新浪背投广告实现代码
2009/07/07 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python中暂存上传图片的方法
2015/02/18 Python
Python比较两个图片相似度的方法
2015/03/13 Python
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
详解python中的json的基本使用方法
2016/12/21 Python
python Pygame的具体使用讲解
2017/11/03 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
Django实现单用户登录的方法示例
2019/03/28 Python
python sorted方法和列表使用解析
2019/11/18 Python
python 利用turtle模块画出没有角的方格
2019/11/23 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
python 穷举指定长度的密码例子
2020/04/02 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
python中的测试框架
2020/11/13 Python
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
韩国现代百货官网:Hmall
2018/03/21 全球购物
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS