ascii函数

2019年10月6日 / 17次阅读 / Last Modified 2019年10月6日
内置函数

python内置了一个ascii函数,此函数的作用于repr函数和str函数基本相同,不同的是,ascii函数只能返回ascii字符,对于非ascii字符,它会使用\x,\u等escape的方式进行转义。

repr函数调用对象的__repr__函数;str函数调用对象的__str__函数。而ascii函数其实也是调用__repr__函数,只是会对__repr__函数返回的字符串进行ascii化处理。

>>> a = '12345abcde'
>>> str(a)
'12345abcde'
>>> repr(a)
"'12345abcde'"
>>> ascii(a)
"'12345abcde'"

下面我们在代码中加点中文:

>>> b = '麦新杰的pynote.net'
>>> str(b)
'麦新杰的pynote.net'
>>> repr(b)
"'麦新杰的pynote.net'"
>>> ascii(b)
"'\\u9ea6\\u65b0\\u6770\\u7684pynote.net'"
>>> print(ascii(b))
'\u9ea6\u65b0\u6770\u7684pynote.net'
>>> eval(ascii(b))
'麦新杰的pynote.net'

4个中文字符,在ascii函数中被转换成了\\u开始的表达方式。

这就是python内置的ascii函数的作用,很简单,在纯英文的环境下,用来代替repr函数是可以的。

-- EOF --

本文链接:https://www.pynote.net/archives/1262

留言区

《ascii函数》有3条留言

电子邮件地址不会被公开。 必填项已用*标注

  • 麦新杰

    对ascii返回的内容,调用print函数时,就不一样了:

    >>> print("'\u9ea6'")
    '麦'
    >>> print("'\\u9ea6'")
    '\u9ea6'
    这应该就是两个\\的原因吧。 [回复]

  • 麦新杰

    >>> eval("'\\u9ea6'")
    '麦'
    >>> eval("'\u9ea6'")
    '麦'
     [回复]

    • 麦新杰

      一个\和两个\(\\),效果是一样的。 [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top