Python食谱-1.2.字符与数字编码之间的互换


原文出处:http://blog.shine-it.net/python/python%E8%8F%9C%E8%B0%B1-12%E5%AD%97%E7%AC%A6%E4%B8%8E%E6%95%B0%E5%AD%97%E7%BC%96%E7%A0%81%E4%B9%8B%E9%97%B4%E7%9A%84%E4%BA%92%E6%8D%A2


作者:Luther Blissett
中文翻译: Tony Gu(digitalsatori)

问题

将字符转换为ASCII(ISO)或Unicode编码的数字编码,或反之

解决办法

内置函数ord和chr就是专为此而设的:

   >>>print ord('a')

   >>>97

   >>>print chr(97)

   >>>a

内置函数ord也可以接受长度为1的Unicode字符串,它可以返回最大到65536的Unicode编码值。如果要从Unicode的数字编码获取Unicode字符串就要用到内置函数unichr:

   >>>print ord(u'u2020')

   >>>8224

   >>>print repr(unichr(8224))

   >>>u'\u2020'

讨论

内置函数ord, chr和unichr可以将字符或Unicode字符转变为相应的数字编码,或者相反。注意:chr(n)和str(n)的区别,这是初学者经常会混淆的:

   >>>print repr(chr(97))

   >>>'a'

   >>>print repr(str(97))

   >>>'97'

chr将参数中的整数转换并根据ASCII编码返回对应的字符,而str返回的是这个整数的10进制数的字符串。

要将一个字符串转变为字符编码值的列表,可以同时使用内置函数map和ord来完成:

   >>> print map(ord, 'ciao')

   >>>[99, 105, 97, 111]

要将字符编码值的一个列表转换为字符串,需要使用''.join,map和chr:

   >>>print ' '.join(map(chr, range(97, 100)))

   >>>abc

参见

Python函数库参考手册关于内置函数chr,ord,unichr的内容,Python in a Nutshell.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值