chr() 和 ord() 与 str 和 bytes 有何关系?

Ste*_*hen 6 python python-3.x

我发现了Python 3文档上chr,并ord成为一个有点不清楚它们如何涉及到两个主要的文本数据类型:strbytes。或者也许是我想多了。

这是我认为可能会发生的情况,但是你能告诉我我是否正确吗?

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

ffe*_*rri 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.
Run Code Online (Sandbox Code Playgroud)

使用str.encode/bytes.decode与字节进行转换。