在进入主题之前,我们先来看一下下面这段文字,对python核心类型是否“可变”有一个基础的印象。
• 数字 —— 不可变
• 列表 —— 有序、可变
• 元组 —— 有序、不可变
• 字符串 —— 无序、可变
• 字典 —— 无序、可变
• 集合 —— 有序、不可变
1、 变量与赋值
➢ 变量其实就是一个指针,指针的内容是一个存储地址
(address),指向相对应的值所在的存储块。
➢ “=”表示赋值(assignment)
- (1)当赋值号右边为一个值时(“a = 1”)
当我们对变量a进行赋值时,Python解释器做了两件事:
①在内存中创建了一个空间,内容是等号“=”右边的数值1;
②在内存中创建了一个名字为a的变量,并将其指向了保存1的空间。 - (2)当赋值号右边是一个表达式时(“a = a + 2”)
当我们在程序中写上“a = a + 2”这个语句时,Python解释器也做了两件事:
(1)在内存中创建另外一块空间,保存a所指的数值加上数值2的结果,即数值3;
(2)将变量a由指向原来数值1变为指向新数值3,即id发