【Python】【 Python中的字节与字符串】

默认编码:

字符不等于字节:字符是人类能够识别的符号,而这些符号要保存到计算的存储中就需要用计算机能够识别的字节(二进制编码)来表示,其中的文本文件都是以某种特定编码的字节形式存放的:

  1. Python2默认编码为’ascii’,而Python3默认编码为’utf-8’
  2. (utf-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,用1到6个字节编码Unicode字符.)
  3. 为了兼容Python2和Python3,建议在代码头部声明字符编码:-- coding:utf-8 --

查看Python3的默认编码,命令如下:

>>>import sys
>>>sys.getdefaultencoding()
'utf-8'

数据类型:

Python中的数据类型有以下三种:

  1. 字符串(如,‘12345’)
  2. 字节串(如,b’12345’)
  3. 数字(如,12345)

utf-8使用三个字节来表示汉字,如:

>>> u'汉'.encode('uft-8')
b'\xe6\xb1\x89'

utf-8兼容ascii,由于十六进制的前128(0x00~0x80)个数与ASCII是一一对应的关系,所以在python中,表示字节串的时候将会出现16进制与ASCII码混合出现的情况。如:

>>> b'\x25\x90\x52'
b'%\x90R'
>>> [ hex(x) for x in b'%\x90R' ]
['0x25', '0x90', '0x52']

Python默认以十进制进行显示和运算,比如:

>>> 0b10       #用二进制表示的数字
2
>>> 0o10       #用八进制表示的数字
8
>>> 0x10       #用十六进制表示的数字
16
>>> 0b10 + 0o10 + 0x10
26

字节串转数字需要用到struct模块:

>>>import struct
>>>struct.unpack('<H', b'\x00\x29')
(10496,)

参考文档
1. Python中的字符串与字符编码
2. Python3下的编码与进制转换总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值