首页 > python基础教程> 详细内容
(28)python少儿编程之bytes、bytearray
日期:2020-02-26 

字符串与bytes

  • 字符串是字符组成的有序序列,字符可以使用编码来理解
  • bytes是字节组成的有序的不可变序列
  • bytearray字节组成的有序的可变序列
  • bytes和bytearray唯一的区别就是是否可变 其他方法都一样

字符集的概念

  1. 计算机底层并不能保存字符,但程序总是需要保存各种字符的
  2. 计算机为每个字符编号,当程序要保存字符时,实际上保存的是该字符的编号
  3. 当程序读取字符时,读取的其实也是编号,接下来要去查“编号一字符对应表”(简称码表)才能得到实际的字符
  4. 美国人给英文字符、数字、标点符号等字符进行了编号,叫做ASCII 字符集
  5. 亚洲国家纷纷为本国文字进行编号,即制订本国的字符集,美国人又为世界上所有书面语言的字符进行了统一编号,这就是 Unicode 字符集,如UTF-8, UTF-16

编码与解码

  • 所以当不同的国家按照不同的编码规则来编码时,我们就需要编码
(28)python少儿编程之bytes、bytearray
  • 计算机就用bytes来传递信息的,最终到展示页面的时候,我们都需要解码成字符串来识别真正的含义 所以选择正确的字符集才能显示正确的结果

bytes 定义

  • 常用的就两种
  1. 用字符串编码的方式 string.encode()
  2. 使用b前缀定义 不过这个有一个要求 只允许基本的ASCII使用字符形式 也就是数字,字母,标点符号,如果要用中文就不能用这种方法
(28)python少儿编程之bytes、bytearray
  • 两种结果是一样的!

bytes操作

  • 和字符串类型类似,都是不可变类型,所以方法很多都一样的,只不过bytes的方法输入是bytes,输出也是bytes
(28)python少儿编程之bytes、bytearray
  • 用法都差不多
  • 索引
(28)python少儿编程之bytes、bytearray
  • [0]取的是a 输出的是该字节对应的数,是一个int类型 大家可以试试英文字母都是用什么数字表示的
  • bytearray 的用法跟bytes是一模一样的 我这边就不演示了