《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
相关文章
|
1月前
|
算法 前端开发 数据处理
小白学python-深入解析一位字符判定算法
小白学python-深入解析一位字符判定算法
48 0
|
12天前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
12 1
|
2月前
|
Python
python获取字符串()里面的字符
在Python中,如果你想获取字符串中括号(比如圆括号`()`、方括号`[]`或花括号`{}`)内的字符,你可以使用正则表达式(通过`re`模块)或者手动编写代码来遍历字符串并检查字符。 这里,我将给出使用正则表达式的一个例子,因为它提供了一种灵活且强大的方式来匹配复杂的字符串模式。 ### 使用正则表达式 正则表达式允许你指定一个模式,Python的`re`模块可以搜索字符串以查找匹配该模式的所有实例。 #### 示例:获取圆括号`()`内的内容 ```python import re def get_content_in_parentheses(s): # 使用正则表达
99 36
|
16天前
|
人工智能 开发工具 Python
[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
12 0
|
2月前
|
索引 Python
python之判断字符里面有没有|8
python之判断字符里面有没有|8
|
2月前
|
Python
Python ASCII码与字符相互转换
Python ASCII码与字符相互转换
|
2月前
|
Python
[oeasy]python035_根据序号得到字符_chr函数_字符_character_
本文介绍了Python中的`ord()`和`chr()`函数。`ord()`函数通过字符找到对应的序号,而`chr()`函数则根据序号找到对应的字符。两者互为逆运算,可以相互转换。文章还探讨了单双引号在字符串中的作用,并解释了中文字符和emoji也有对应的序号。最后总结了`ord()`和`chr()`函数的特点,并提供了学习资源链接。
29 4
|
3月前
|
数据采集 Python
|
2月前
|
Unix 编译器 C语言
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ordinal_
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ord
24 0
|
3月前
|
Python
【Python】正则表达式判断是否存在连续相同的两个字符,连续两个字符一模一样
Python函数isContinuousChar,使用正则表达式来检测字符串中是否存在连续的相同字母或数字,并返回存在此类字符的列表长度,如果列表长度为0则表示不存在连续相同的字符。
151 2