- 等号直接连接的变量传递赋值:
a = b = c = d = 5
print(a, b, c, d)
赋值的顺序是从右往左,也就是把 5 赋值给 d,再把d的值赋值给c,再把 c 的值赋值给 b,再把 b 的值赋值给 a;像下面这种就不行,结果会报错:
x = 8 = y = z
print(x, y, z)
- 拆包:
m, n = 6, 8
print(m, n)
这种叫做拆包,结果是把 6 赋值给 m ,把 8 赋值给 n,也就是m=6,n=8 。
x = 'hello', 'good', 'well'
print(x) # x 的值打印为:('hello', 'good', 'yes')
这种赋值也是可以的,是把后面的值作为一个整体赋值给 x 变量,格式为元组,元组的小括号省略掉了。
需要注意的是,拆包时,如果变量数和值的个数不一致,会报错:
a = b = 1, 2, 3, 4, 5
print(a, b)
如果想要把一个值赋给一个变量,把剩余所有的值作为一个整体赋值给另一个变量,这种也是可以的,只需要在那个变量前加*号:
a, *b, c = 1, 2, 3, 4, 5
print(a, b, c)
这里是把 1 赋值给了 a, 把 5 赋值给了 c,剩下的作为一个整体赋值给了 变量 b,但是 b 的格式变成了一个列表。