show: step version: 1.0 enable_checker: tru
变量名标识符
回忆上次内容
- 上次我们 了解了
id 函数
- id函数 可以得到
- 变量对象 所引用的
唯一内存地址
s1 = "oeasy"
A = 10- 现在都是
- 用 字面量(literal)
- 给变量
赋值
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __python](https://file.cfanz.cn/uploads/png/2024/12/04/6/32db0MHE73.png)
- 可以
- 用
变量 - 给变量
赋值吗? 🤔
变量赋值
s1 = "oeasy"
s2 = s1
print(id(s1))
print(id(s2))
print(id(s1) == id(s2))- 将s1的值
- 赋给s2
- s2 所指向的 内存地址
- 就是s1 所在的内存地址
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __python_02](https://file.cfanz.cn/uploads/png/2024/12/04/6/S24D068376.png)
图解
- 地址是
同一个
- 两个变量 都指向了
这个地址 - 完成了 变量的
复制
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __python_03](https://file.cfanz.cn/uploads/png/2024/12/04/6/41b05Y9c5a.png)
- 为什么要
- 用 变量
- 对
另一个变量 赋值 呢?
指向
- 比如 要让
- 香蕉 和 苹果 价格
相同
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __赋值_04](https://file.cfanz.cn/uploads/png/2024/12/04/6/TfB83Qb097.png)
- 可以 将 苹果的价格
赋给香蕉- 价格就
一样了
- 如果 此时
- 对s2 再赋
新值 呢?
重新赋值
s1 = "oeasy"
s2 = s1
print(id(s1))
print(id(s2))
print(id(s1) == id(s2))
s2 = "o2z"
print(id(s1))
print(id(s2))
print(id(s1) == id(s2))- 将 'o2z' 赋给 s2 后
- s2引用的 内存地址
变了 - s1引用的
没变
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __python_05](https://file.cfanz.cn/uploads/png/2024/12/04/6/WFc163Pdbb.png)
再图解
- 用变量 给变量赋值
- 就和 用字面量 给变量赋值一样
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_06](https://file.cfanz.cn/uploads/png/2024/12/04/6/OPP8AKX6Na.png)
- 变量复制 真的很
神奇!!!
- 也许 您 问了
- 这 神奇在
哪儿呢?🥸
自我复制
- 生命的基本特征
- 就是
自我复制
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __赋值_07](https://file.cfanz.cn/uploads/png/2024/12/04/6/Z1VeAC2C7e.png)
- 从
变量的 自我复制
- 到
程序的 自我复制 - 再到
硬件载具的 自我复制
- 机器 逐渐 具有生命
- 变成 具身智能
- Embodied Artificial Intelligence
速度
- 而且 通过软件
- 完成复制
- 速度 比 生物快太多了
- 很快就会有
- 100个副本
- 可以干活了
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __python_08](https://file.cfanz.cn/uploads/png/2024/12/04/6/4UD3828893.png)
- 甚至 矩阵
- 完成 交互和融合
- 速度惊人
声明变量
- 声明 a 是个 变量
- 并赋值为1
- a 是个
- 数字类型 变量
- 引用地址
- 9788960
- 通过 id(a)得到
- 地址里
- 存的值 是1
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __赋值_09](https://file.cfanz.cn/uploads/png/2024/12/04/6/be3DH11398.png)
- 声明 b变量
- 并且把 a所指向变量 的 地址
- 赋给 容器b
- 变量b
- 类型 与a
相同 - 引用地址 也与a
相同
- a 和 b
- 引用
同一个 地址 - 此地址 存的值 是1
- 如果 把2
- 再赋给a 呢?
重新赋值
- 对a重新赋值后
- a 引用了
新地址 (9788992) - b 依然引用
老地址
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __python_10](https://file.cfanz.cn/uploads/png/2024/12/04/6/be1BIcDBDD.png)
- 可以 对两个变量
- 一起 赋值 吗?
试一试
- 动手试一试
a = b = 3- 可以吗?
连等赋值
- 一行之中
- 可以给
- 多个变量赋值
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __赋值_11](https://file.cfanz.cn/uploads/png/2024/12/04/6/RGJKb6be31.png)
- 这就相当于
两次赋值
- 先算
右边的等号
- b = 3
- 将 3 赋给 b
- 再算
左边的等号
- a = b
- 将 b 赋给 a
两个等号
两次 赋值
- 如果 所赋的值
很大呢?
两个等号
- 这次
- 所赋的值
很大 - 不在 常用地址范围 中
- 属于
边远地址
- 但是
- a和b 所指向的地址
- 仍然 是
同一个地址
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_12](https://file.cfanz.cn/uploads/png/2024/12/04/6/9fa8W7RS5Q.png)
- 逗号分隔
- 输出两个变量的方式叫做
- pack
- 打包
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_13](https://file.cfanz.cn/uploads/png/2024/12/04/6/E1Q361Db74.png)
- 能否 给
- 打好包
两个变量 - 赋
不同的 值 ?
同一行 赋不同值
- 在 等号
两边都加上逗号
- 变量名 加上逗号
- 要赋的值
也加上 逗号
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_14](https://file.cfanz.cn/uploads/png/2024/12/04/6/L4f23e9Ua8.png)
- 这种情况 要经过
- unpack
- 解包过程
- 将(4, 5)进行解包
- 解成 4和5
- 分别赋给 a和b
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_15](https://file.cfanz.cn/uploads/png/2024/12/04/6/0P0511N7G1.png)
- 除了
变量之外
- 导入的模块
也有地址吗?
模块类型
import time
type(time)- time的类型是
- module
- 模块
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __赋值_16](https://file.cfanz.cn/uploads/png/2024/12/04/6/71C3742C3P.png)
- 模块 也有
地址吗?
模块地址
- import time之后
- 观察 id(time)
id(time)- 模块
- module
- 模块 也有自己的地址
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_17](https://file.cfanz.cn/uploads/png/2024/12/04/6/71C3742C3P.png)
- 除了 变量 和 模块
- 函数(function) 有
地址吗?
函数 地址
id(print)
id(ord)
id(chr)
id(id)- 函数 也有 地址
- 唯一标识
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __赋值_18](https://file.cfanz.cn/uploads/png/2024/12/04/6/3L6B96S6R5.png)
- 还有什么也有地址吗?
更多
id(range)
id(type)
id(int)
id(str)- 为什么 这哥几个
- 数值 这么小?
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_19](https://file.cfanz.cn/uploads/png/2024/12/04/6/34F33R7SNe.png)
- 他们 属于
什么类型 呢?
class 类型
type(type)
type(int)
type(str)
type(range)- 他们本身就是
- 类型
- type
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_20](https://file.cfanz.cn/uploads/png/2024/12/04/6/ed32R5B57E.png)
- 回忆一下
- 这个 range怎么
- 输出ASCII码表?
黑暗森林
for num in range(0, 128):
if num % 8 == 0:
print()
print(chr(num), end="\t")- 遍历了ascii码表
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __赋值_21](https://file.cfanz.cn/uploads/png/2024/12/04/6/9P7f1232Q6.png)
总结
- 这次我们 了解了
变量赋值连等赋值解包赋值
- 所有对象
- 变量 variable
- 模块 module
- 函数 function
- 类 class
- 都有 自己所属的 类型
- 也都 在内存中 引用 唯一位置(id)
- 这些数字 组成了 python系统
![图片描述 [oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment __内存地址_22](https://file.cfanz.cn/uploads/png/2024/12/04/6/52830bFF93.png)
- 现在 已经声明了
哪些变量 ?🤔
- 可以
查吗?🤔
- 我们下次再说!👋
- 蓝桥->https://www.lanqiao.cn/courses/3584
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython










