我发现chr
和ord
上的Python 3文档对于它们与两种主要文本数据类型的关系有点不清楚:str
和bytes
。或者我可能会过度思考它。
以下是我认为可能会发生的事情,但如果我说得对,你可以告诉我吗?
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代码点。答案 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
转换为/从字节转换。