《Python Cookbook(第2版)中文版》——1.2 字符和字符值之间的转换

简介:

本节书摘来自异步社区《Python Cookbook(第2版)中文版》一书中的第1章,第1.2节,作者[美]Alex Martelli , Anna Martelli Ravenscrof , David Ascher ,高铁军 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 字符和字符值之间的转换

任务

将一个字符转化为相应的ASCII(ISO)或者Unicode码,或者反其道而行之。
解决方案

这正是内建的函数ord和chr擅长的任务:

>>> print ord('a')
97
>>> print chr(97)
a

内建函数ord同样也接收长度为1的Unicode字符串作为参数,此时它返回一个Unicode的码值,最大到65535。如果想把一个数字的Unicode码值转化为一个长度为1的Unicode字符串,可以用内建函数unichr:

>>> print ord(u'\u2020')
8224
>>> print repr(unichr(8224))
u'\u2020'

讨论

这是个很普通的任务,有时我们需要将字符(在Python中是长度为1的字符串)转换为ASCII或者Unicode码,有时则反其道而行之,很常见也很有用。内建的ord、chr和unichr函数完全满足了相关的需求。但请注意,新手们常常混淆chr(n)和str(n)之间的区别:

>>> print repr(chr(97))
'a'
>>> print repr(str(97))
'97'

chr将一个小整数作为参数并返回对应于ASCII单字符的字符串,而str,能够以任何整数为参数,返回一个该整数的文本形式的字符串。

如果想把一个字符串转化为一个包含各个字符的值的列表,可以像下面这样同时使用内建的map和ord函数:

>>> print map(ord, 'ciao')
[99, 105, 97, 111]

若想通过一个包含了字符值的列表创建字符串,可以使用".join、map和chr;比如:

>>> print ''.join(map(chr, range(97, 100)))
abc
相关文章
|
9天前
|
存储 计算机视觉 Python
python实现Gif图片的字符画
这是一个Python实战项目,旨在将GIF动态图转化为ASCII字符动画。项目适合有一定Python基础的学习者,主要使用os、imageio、PIL库。首先,代码导入所需库,然后通过PIL创建空白图片并添加文本。接着,程序读取GIF,拆分帧并转为字符画,存入“tmp”目录。同时,代码提供了清空“tmp”目录、将灰度值映射为ASCII字符、将图片处理成字符画的函数。此外,还有创建新画布和合成GIF的步骤。主函数调用这些模块,最终将ASCII字符画合并成GIF。项目展示了将动态图像转换为ASCII艺术的过程。
|
2月前
|
索引 Python
Python 超高频常见字符操作【建议收藏】
Python 超高频常见字符操作【建议收藏】
|
3月前
|
Python
在Python中实现图片转字符画灰度处理或灰色量化
在Python中实现图片转字符画灰度处理或灰色量化
26 1
|
3月前
|
计算机视觉 Python
在Python中实现图片转字符画打开图片
在Python中实现图片转字符画打开图片
14 1
|
3月前
|
Python
在Python中实现图片转字符画导入所需库
在Python中实现图片转字符画导入所需库
14 1
|
3月前
|
存储 算法 计算机视觉
在Python中实现图片转字符画
在Python中实现图片转字符画
15 1
|
4月前
|
算法 Python Java
Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
42 0
Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
|
4月前
python-capitalize() 方法:将字符串的第一个字符转换为大写,其余字符转换为小写
python-capitalize() 方法:将字符串的第一个字符转换为大写,其余字符转换为小写
20 0
|
4月前
|
Python
Pycharm 如何更改成中文版| Python循环语句| for 和 else 的搭配使用
Pycharm 如何更改成中文版| Python循环语句| for 和 else 的搭配使用
22 0
|
4月前
|
JSON 数据格式 Python
Python获取指定字符前面的所有字符
Python获取指定字符前面的所有字符
14 0