浅谈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中bisect的用法
Sep 23 Python
Python通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
python读取一个目录下所有txt里面的内容方法
Jun 23 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
python实现杨氏矩阵查找
Mar 02 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
Keras自定义IOU方式
Jun 10 Python
Python实现区域填充的示例代码
Feb 03 Python
如何在向量化NumPy数组上进行移动窗口
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
MYSQL环境变量设置方法
2007/01/15 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
Python中的pass语句使用方法讲解
2015/05/14 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
《三袋麦子》教学反思
2014/03/02 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
导游词之无锡唐城
2019/12/12 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android