python:内置函数ascii()

  • Python 的内置函数 ascii(object) 与 repr() 类似返回一个字符串,表示对象的可打印 ASCII 码形式。非 ASCII 字符会用 \x、\u 和 \U 进行转义。

  • ASCII 是用于信息交换的美国标准代码(American Standard Code )。它是给不同字符和符号的数值,供计算机存储和操作。例如,字母“A”的 ASCII 值为 65。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。ASCII 第一次以规范标准的类型发表是在1967年,最后一次更新则是在 1986 年,到目前为止共定义了 128 个字符。

  • Python 在 2.0 时期变量名仅支持 ASCII 范围内的字符,到了 Python 3.0 时代允许 Unicode 范围作为变量名及名字空间的名称,这对汉语及其其他语法的用户提供了便利,意味着我们在定义变量、函数名、类名等场景下都可以使用汉字串、表情符号、标志符号等。

相关方法

与 ascii() 相关的,Python 还有两个内置函数:

  • ord©:给定一个表示一个 Unicode 字符的字符串,返回一个表示该字符的 Unicode 码点的整数。例如 ord(‘a’) 返回整数 97, ord(‘€’) (欧元符号)返回 8364 。
  • chr(i):返回表示 Unicode 码位为整数 i 的字符的字符串。例如,chr(97) 返回字符串 ‘a’,chr(8364) 返回字符串 ‘€’。这是 ord() 的逆函数。实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触发 ValueError 异常。

要注意的是:

  • ord©:c 为一个字符串,返回一个整数,这个整数为 Unicode 码位编号
  • chr(i):i 一个整数(有上述范围限制),返回码位编号为这个整数的 Unicode 字符串
    它们两个互为逆函数。

Unicode 也是一种为字符提供唯一数字的编码技术。虽然 ASCII 仅编码128个字符,但当前的 Unicode 有来自数百个文字符号系统的 100000 多个字符。

实例

ascii(123)
# '123'

ascii('盖若')
# "'\\u76d6\\u82e5'"

Languages = ['pythØn','C++','Go']
ascii(Languages)
# "['pyth\\xd8n', 'C++', 'Go']"


# 字符
c = 'G'

# ASCII 码
a = 99

print(c, " 的ASCII 码为", ord(c))
print(a, " 对应的字符为", chr(a))
'''
G 的ASCII 码为 71
99  对应的字符为 c
'''

Unicode 和 ASCII 的区别

ASCII编码是1个字节,而Unicode编码通常是2个字节。

字母A用ASCII编码是十进制的65,二进制的01000001;而在Unicode中,只需要在前面补0,即为:00000000 01000001。

新的问题:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

UTF-8 的编码规对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值