python – chr()和ord()如何与str和bytes相关?

我发现
chr
ord上的Python 3文档有点不清楚它们与两种主要文本数据类型的关系:str和bytes.或者也许我正在过度思考它.

这是我认为可能发生的事情,但如果我是对的,你可以告诉我吗?

> ord()将单字符str作为输入并返回int.输入是一个str就像Python 3中的任何其他str一样.特别是,它不是像UTF-8那样以某种特定的Unicode格式编码的字节,而是用Python的内部str格式表示Unicode代码点.
> chr()将int作为输入,并返回单个字符str.返回的str就像Python中的任何其他str一样,并且类似地不是使用字节的特定编码.
> ord()或chr()决不处理字节,也不处理特定的Unicode格式(如UTF-8),它们只处理Python的内部str表示,它更抽象地处理Unicode代码点.

最佳答案 你是对的.

ord()和chr()仅处理单字符字符串.

他们的文档很清楚:

>>> help(ord)
ord(c, /)
    Return the Unicode code point for a one-character string.

>>> help(chr)
chr(i, /)
    Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.

使用str.encode / bytes.decode转换为/从字节转换.

点赞