show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次复习了字符序列
- 字符序列和列表、元组一样都属于序列
- 序列的东西他全能用
- in
- 加法、乘法运算
- 索引
- 切片
- index
- len
- max
- min
- 字符序列其实就是
- 字符连成的序列
- 一个个字符连起来成了串
- 滔滔不绝、川流不息
- 流动起来
- 不过计算机中流动的并不是字符序列
- 计算机只认识0、1构成的字节
- 字节在流动
- 字节怎么流的?
- 可以流成字节序列吗?🤔
- 序列序列
- 有序的排列
- 什么是有序?
- 就是有序号
- 正着数 0123
- 倒着数-1-2-3
- 一个个挨着
- 排列着
- 就是有序号
- 都有什么序列呢?
- 比较复杂的是列表 - 列表项可以不是同一个类型 - 而且可以嵌套
- 不可变的列表 - 就是元组
- 字符序列 - 就是字符串
- 字节也可以形成序列吗?
- 什么是字节?
- 首先明确字节长什么样子?
- 1 个 字节(byte)
- 正好 8 个 位(bit)
- 可以使用hex函数
- 得到数字对应的十六进制形态
- 十六进制形态
- 可以用来表示字节状态
- 字符存储在一个字节中
- "a"的字节状态为61
- 十六进制表示的字节(byte)
- 可以被解码(decode)为一个字符(character)
- 一个字符(character)
- 可以被编码(encode)为一个字节(byte)
- b"a"是什么类型呢?
- type(b"a")
- 观察类型
- 有好几个构造函数
- 先看看这个
- 构造n个字节的字节序列
- 其中每个字节都是null byte
- 每个字节都是b"\x00"
- 可以构造有内容的吗?
- 可以将字符串和编码方式作为生成字节序列的参数
- 这很像编码过程
- 字符串和字节序列之间可以相互转化
- 可以把字符编码为二进制字节序列
- 也可以把二进制字节序列解码为字符串
- 字符串是我们生活中常用的
- 要把字符串
编码encode
为 二进制字节 - 才能放进计算机
- 要把字符串
- 二进制字节序列是计算机存储中常用的
- 要把 计算机中存储的二进制字节序列
解码decode
为 字符串 - 才能在生活中理解
- 要把 计算机中存储的二进制字节序列
- 字符串是我们生活中常用的
- 要把字符串
编码encode
为字节序列 - 才能存储在计算机里面
- 要把字符串
- 字节序列是计算机存储中常用的
- 要把计算机中存储的字节序列
解码decode
为字符串 - 才能在生活中理解
- 要把计算机中存储的字节序列
- 除了字符串需要编码解码之外
- 数字也可以编码解码
-
数字是我们生活中常用的
- 要把数字
编码、装箱pack
为字节序列 - 才能存储在计算机里面
- 要把数字
-
字节序列是计算机存储中常用的
- 要把计算机中存储的字节序列
解码、拆箱unpack
为字符串 - 才能在生活中理解
- 要把计算机中存储的字节序列
-
数字可以按照他的类型
- 来进行编码解码
- 我们选择"h"
- 有符号
- 两字节
- 选择什么字节序呢?
- 大端还是小端?
- 如何理解这个
- b"\x04\xd2"?
- 1个字节8位
- 前面的1个1
- 合 2 8
- 代表1个256
- 前面的1个1
- 前面字节里面是4
- 就是4 * (2 ** 8)
- 计算机中一切都是字节序列
- 这如何理解?
- 第一台计算机 由继电器作为元件
- 艾肯 为 美国海军制作
- 名叫 Harvard MARK I
- 也叫做ASCC
- Automatic Sequence Controlled Calculator
- 自动序列控制计算器
- 无论是程序
- cpu 最终执行的二进制指令
- 还是数据
- 存储起来的数字、字符
- 都是用字节存储着的
- 无论是计算设备
- cpu
- gpu
- 还是存储设备
- 内存硬盘
- 甚至传输设备
- 网卡、usb 口
- 都是使用字节的
- 可以用字节复制字节吗?
- 试试
- 如何理解immutable copy呢?
- 感觉这种构造函数好像没有构造一样
- 只是加了个变量名而已吗?
- 这就用到了 字节序列的 加法
- 加法是序列的通用操作
- 是序列的通用操作
- bytes还有一种构造函数应该如何理解?
- 可遍历的整数?
- 元组、列表都是可遍历的类型
- bytes会把参数中的可遍历的整数都变成字节
- 但是如果数字大于一个字节怎么办?
- 生成指定数量的空字节对象
- 参考红框所示
- 如果我就想按照绿框中的方式
- 给一个超过0xff的数字呢?
-
数字的接受范围是
- range(0,256)
-
可以将字节对象作为参数赋给元组吗?
- 逆向操作
- 还是经历了一个拆包(unpack)的过程
- 毕竟parallel assignment
- 两边断点数量要相等
- 才可能平行
- 这次复习了字节序列
- bytes
- bytes
- 有自己的构造函数
- 也可以用字符串或者数字编码生成得到
- 我们
- 打开的图文
- 听的音频
- 看的视频
- 传输的数据
- 其实都是字节流
- 输入流、输出流
- 也是也都是字节流
- 字节流就是字节序列
- 序列的通用操作
- 字节序列都能做吗?🤔
- 序列的通用操作
- 下次再说 👋