1、固定变量赋值

Ptyhon 变量的赋值详解_第1张图片
图1
Ptyhon 变量的赋值详解_第2张图片
图2
根据上面显示的图1,来进行图2的赋值操作,下面进行详细说明。
定义变量s1 >>>s1='nihao'
定义变量s2等于s1 >>>s2=s1
打印s1的内存地址 >>>print(id(s1))
10164800
打印s2的内存地址 >>>print(id(s2))
10164800
由此可以看出,s2和s1内存地址一样,同时指向‘nihao’字符串。
给变量s1重新赋值 >>>s1='nihaoma'
打印s1的内存地址 >>>print(id(s1))
10164960
打印s2的内存地址 >>>print(id(s2))
10164800
由以上两步操作可以看出,s1重新赋值以后,新的内存地址不在是原始的内存地址,而是重新指向新的'nihaoma'字符串所对应的内存地址上,但是,s2还是原来的内存地址,并未变化,因此s2的值也不会更改,还是‘nihao’字符串。
2、可变变量赋值
Ptyhon 变量的赋值详解_第3张图片
图3
Ptyhon 变量的赋值详解_第4张图片
图4
根据上面显示的图3,来进行图4的赋值操作,下面进行详细说明。
定义可变的L1变量>>>L1=[1,2,3,4,5]
将L1变量赋值给L2变量 >>>L2=L1
查看L2的值 >>>L2
[1,2,3,4,5]
查看L1的内存地址>>>print(id(L1))
9618816
查看L2的内存地址>>>print(id(L2))
9618816
由以上可以看出,赋值操作,被赋值的变量地址和赋值的变量地址是一样的。
L1新增>>>L1.append(6)
查看L1和L2的值都为
[1,2,3,4,5,6]
查看L1的内存地址>>>print(id(L1))
9618816
查看L2的内存地址>>>print(id(L2))
9618816
由以上操作可以看出,更改后的L1内存地址并未改变,但是值改变了,L2的内存地址也没改变,但是值改变了,所以,可变的变量如果只是单纯的对数据进行更改,例如增删改,都不会改变内存地址,只是值改变了。