当前位置: 首页 > news >正文

Python中,`ord()` 和 `decode()` 有点儿像,区别是什么?

从“都是将某种形式转换为字符相关信息”的角度看,ord()decode() 可能会让人觉得有点“像”,但本质上它们是完全不同的操作,核心区别在于处理的对象和转换的方向。我们可以用一个形象的比喻来理解:

打个比方:字符的“身份链”

假设字符“中”有这样一条“身份链”:
二进制字节(b'\xe4\xb8\xad')→ 字符串("中")→ Unicode码点(20013)

  • decode() 做的是从左到右的第一步:把最底层的二进制字节(bytes)翻译成人类能看懂的字符串(str),相当于“解密二进制数据,还原成文字”。
  • ord() 做的是从中间到右边的一步:把已经是字符串的单个字符(str)翻译成它在Unicode体系中的“身份证号”(码点整数),相当于“查询文字的唯一编号”。

具体差异对比

对比维度 decode() ord()
输入类型 必须是 bytes(二进制字节串) 必须是 str(且长度为1的单个字符)
输出类型 str(字符串,人类可直接阅读) int(整数,字符的Unicode码点)
转换逻辑 按编码规则(如UTF-8)将字节“翻译”为字符 直接返回字符在Unicode中的唯一编号
依赖编码格式吗? 必须指定(如utf-8gbk 不依赖,因为Unicode码点是全球唯一的

举例:完全不同的操作链

  1. decode() 处理字节:

    # 二进制字节 → 字符串(解码)
    b = b'\xe4\xb8\xad'  # "中"的UTF-8字节
    s = b.decode('utf-8')  # 得到 "中"(str类型)
    
  2. ord() 处理字符:

    # 单个字符 → 码点(查询编号)
    s = "中"
    code = ord(s)  # 得到 20013(int类型,即U+4E2D)
    

如果强行“交叉使用”,会直接报错:

ord(b'\xe4\xb8\xad')  # 错误:ord()不能接收bytes
b'\xe4\xb8\xad'.decode()  # 正确,但结果是str,不是整数

总结

两者唯一的“间接关联”是:它们都涉及字符的处理,但处于不同的转换环节——decode() 是“二进制→文字”的解码过程,ord() 是“文字→编号”的查询过程。就像“解密电报”和“查询某人身份证号”一样,看似都和“人”有关,但操作的对象和目的完全不同。

http://www.jsqmd.com/news/39556/

相关文章:

  • JavaEE--SpringIoC - 详解
  • 2025年比较好的非标设备机架产品推荐排行榜单,非标设备机架公司精选实力品牌榜单发布
  • flask: 实现流式输出数据
  • 第四十篇
  • Codeforces-2148
  • 丽江西林瓶灌装线选充氮还是真空型?
  • 2025年北京继承官司律师机构实力排行榜新鲜发布,继承律师事务所/北京继承律师哪个好/北京丰台继承律师/北京继承纠纷法律事务所选哪家
  • 辽源适配冻干机西林瓶灌装加塞机推荐
  • webclientserver
  • C#+WPF?​就是工业上位机,用Python+Qt还
  • 2025年市场十大名牌管材生产厂家怎么选择,十大名牌管材源头厂家推荐排行榜单精选优质品牌解析
  • 2025年目前评价高的供应链云服务商推荐排行榜,供应链云服务商深度剖析助力明智之选
  • Linux 交叉编译(toolchain) ARM aarch64版 tcpreplay
  • ITR经典案例 | 燕千云携手国内知名软件供应商,AI驱动客户服务流升级
  • 彻底解决WPS在扩展屏出现的下拉错位现象
  • 2025年最新钣金加工厂家综合实力排名,助您轻松选择,钣金加工加工厂睿意达发展迅速,实力雄厚
  • 丽江小药厂适用半自动西林瓶灌装生产线
  • win7 64位 sp1 最高nvidia gt740 显卡驱动版本
  • 2025年北京继承官司律师机构推荐,这些律所值得信赖,北京丰台继承律师/北京离婚纠纷/离婚纠纷律师/遗产继承律师事务所维权机构选哪家
  • 在macOS上高效使用8BitDo机械键盘:超级按键与Karabiner配置指南
  • 2025年度PLC控制柜厂家红榜,这些企业获好评如潮,正压通风防爆控制柜/水处理PLC的电气控制柜/供水设备变频控制柜产品找哪家
  • android app network monitor with mitmweb
  • 详细介绍:Uniapp微信小程序开发:onPullDownRefresh
  • 71_基于深度学习的布料瑕疵检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集) - 实践
  • 【比赛记录】2025CSP+NOIP 冲刺模拟赛合集V
  • 2025年最新优质的管材源头厂家口碑推荐,市场家用管材生产厂家中亿百年满足多元需求
  • 2025年加气线厂家推荐榜单TOP5:实力派引领行业高质量发展
  • 乌鲁木齐高校实验室西林瓶灌装机选型指南
  • 2025年市场技术好的ERP管理系统口碑推荐榜,优秀的ERP服务商赋能企业生产效率提升与成本优化
  • 沈阳车库门厂家,沈阳卷帘门工厂,沈阳防盗门生产厂家,沈阳悬浮门厂家排行,沈阳防盗门生产厂家排行,4S店智能车库提升门品牌十大推荐榜-沈阳鼎盛和门业