i=3+4
a=b=c=10
print(a,id(a))
print(b,id(b))
print(c,id(c))
print(a is b is c)
a+=30 #a=1+30
b-=10 #b=b-10
c*=3 #c=c*3
a/=3 #a=a/3
b//=3 #b=b//3
c%=3 #c=c%3
#解包赋值
a,b,c=10,20,30
print(a,b,c)
上述代码中有一段print(a is b is c),运行结果为True,根据前文学过的知识,证明了变量a,b,c的id也是相同的。
在此对变量进行一个解释,每一个变量都由三部分构成,即变量标识,变量类型,数值三部分构成,变量标识即该变量的脸面,数值即是value。每一个变量数值都有一个ID与之对应,原因是,在变量初始化的时候,系统则会给该变量数值分配一块内存空间,用户可以通过该变量名引用该数值,但数值的本质还是对应内存中的一块空间,并且标号,即是ID。对应前端网站,变量标识即网站域名,ID则是该网站的IP地址。但与网站不同的是,变量在使用数值的时候仅仅是调用数值,即该变量标识指向了该数值分配的空间,用户通过变量名(即使变量标识)调用数值。数值的唯一体现即是该空间的地址ID
所以在上面的判断a,b,c是否为同一变量时,结果为True。即是a,b,c三个变量标识同时指向了id为1493598732816的空间,而is的判断是根据空间地址(ID)。
第二段中的解包赋值是python中较为便捷的赋值方式,也是python简单受欢迎的一个体现,而且可以将各自的数字随意调换。
a,b=10,20
a,b=30,40
print(a,b)
#30 40
需要注意的是,在进行解包赋值时,变量个数要与数值数保持相同,否则系统会报错