You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

chr()与ord()函数和Python中str、bytes类型的关联关系确认

关于Python中chr()、ord()与str、bytes的关系解析

你的理解完全正确!咱们把这个逻辑拆得更清楚一点:

  • ord()的输入与输出:
    ord()只认单个字符的str类型——注意这里的str是Python 3里原生的Unicode字符串,不是经过编码后的bytes。它的作用就是把这个字符对应的Unicode码点(也就是那个整数)返回给你。比如ord('A')会返回65,ord('中')返回20013,这些都是字符对应的Unicode标准里的码点值。

  • chr()的反向操作:
    chr()刚好反过来,它接收一个整数(有效的Unicode码点),返回对应的单个字符str。比如chr(65)得到'A',chr(20013)得到'中'。

  • 为什么和bytes没关系?
    bytes是字符串经过编码(比如UTF-8、GBK)后的字节序列,和Unicode码点不是一个层面的东西。如果你拿bytes里的单个元素(比如b'A'[0]),得到的是这个字节的整数值,这和ord()返回的码点在ASCII范围内碰巧一样,但本质完全不同——比如'中'用UTF-8编码是b'\xe4\xb8\xad',这里的每个字节值228、184、173和它的Unicode码点20013完全不是一回事。

简单说,ord()和chr()是在Unicode码点和Python原生str字符之间做转换,和编码后的bytes完全不搭边,你之前的理解一点没错,不是你想多了~

内容的提问来源于stack exchange,提问作者Stephen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:31:42