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

时间:2018-04-24 22:02:42

标签: python python-3.x

我发现chrord上的Python 3文档对于它们与两种主要文本数据类型的关系有点不清楚:strbytes 。或者我可能会过度思考它。

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

  • ord()将单个字符str作为输入,并返回int。输入是str,就像Python 3中的任何其他str一样。特别是, bytes以某种特定的Unicode格式编码,如UTF-8而是用Python的内部str格式表示Unicode代码点。
  • chr()int作为输入,并返回单个字符str。返回的str与Python中的任何其他str一样,同样不是使用bytes的特定编码。
  • 在任何时候,ord()chr()都不会处理bytes,也不会处理特定的Unicode格式,如UTF-8,它们只处理Python' s内部str表示,它更抽象地处理Unicode代码点。

1 个答案:

答案 0 :(得分:1)

你是对的。

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转换为/从字节转换。