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

    xiaoxiao2024-05-24  130

    本节书摘来自异步社区《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 相关资源:《Python Cookbook》第三版中文v3.0.0.pdf 熊熊
    最新回复(0)