赋值运算符
a = 345 |
python中的等号(=)是赋值运算符,等号的右侧是表达式,左侧是变量,赋值运算将右侧表达式的值赋值给左侧的变量。赋值运算符与算数运算符结合会产生新的赋值语法,除此以外,还有元组赋值,多目标赋值,不论形式如何变化,赋值运算的目的只有一个,将对象赋值给变量。
1. 先计算赋值运算符右侧的表达式
a = 0 |
永远先计算等号右侧的表达式,以 a = a+1为例,先计算表达式a + 1的值,此时a = 0 , a + 1 = 0 + 1 = 1。 等号右侧表达式的值为1,将1赋值给变量a,最终a = 1
2. 与其他算术运算符结合
与其他算术运算符结合,产生新的语法,让代码看起来更加简洁,下面是加法赋值运算符的例子
a = 0 |
这种算术运算符在前,等号在后的表示方式还6种,分别是
1. -= 减法赋值运算符 |
3. 元组赋值
同时对两个或多个变量进行赋值,可以采用元组赋值
a , b = 1, 2 |
这种赋值方式,可以减少代码函数,让代码更加简洁
4. 多目标赋值
如果对两个或多个变量进行赋值时,他们的初始值都相同,那么,就没有必要使用元组赋值方式,而应该采用多目标赋值
a=b=c=1 |
用这种方式,a, b, c 的值都是1
但在使用这种方式时,有一个坑你需要注意
a = b = c = [1] |
程序输出结果
4414966920 |
这3个变量的内存地址是相同的,而如果你采用单个变量赋值的基本形式,则不会相同
a = [1] |
程序输出结果
4377783432 |
用这种方式,每一行赋值语句,都会在内存中创建一个列表再赋值给变量,因此他们的内存地址不同。
使用a = b = c = [1]这种多目标赋值方法,其过程是这样的,先创建列表[1],赋值给a, 然后执行b = a, c = a,因此在使用多目标赋值语法时,不要将可变对象赋值给多个变量,一面他们之间互相影响。