关于Python ord()和chr()返回ASCII码和Unicode码的看法

刚开始学这两个函数的时候,看到书上说的是返回Unicode码,
在这里插入图片描述
但是自己去百度之后,发现很多人都说返回是ASCII
在这里插入图片描述
在这里插入图片描述
为什么会这样呢?

那么为了不误解 ,我们先介绍下Unicode码和ASCII码

ASCII
美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符
(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值

Unicode(万国码)
如果有一种编码,将世界上所有的符号都纳入其中,无论是英文、日文、还是中文等,大家都使用这个编码表,就不会出现编码不匹配现象。每个符号对应一个唯一的编码,乱码问题就不存在了。这就是Unicode编码

简单来说:Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
区别:
ASCII:不支持中文,1个英文占1个字节
Unicode(万国码,支持所有国家的文字显示):支持中文,但是每个英文和中文都占2个字节

那么为什么会出现有的说ASCII有的说Unicode码的呢?

划重点

因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串’ABC’在Python内部都是ASCII编码的。,但是在Unicode标准发布以后 新版的Python,就开始逐渐基于Unicode码了

所以这是为什么会说ord()返回会出现不同的原因

这是Python2的时候介绍⬇

ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值

但是在Python3之后
unichr函数取消了 因为Python3中的chr()不仅仅支持Ascii的转换,直接支持了更为适用的Unicode转换

但是Unicode码的0-127和ASCII码还是一样的,所以不用担心ASCII不能用的问题

*127-255的扩展ASCII码和Unicode是不同的 这点要注意*

问题到这里就差不多了,还有一些更深入的我们就不说了,
总之时代在发展,Python也在不断改版,努力学习才不会落伍,

  • 37
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z小旋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值