Python赋值运算符和拆包
一、赋值运算符
运算符 | 实例 |
---|---|
= | c = 1 + 2 * 3,结果:c 的值为7 |
+= | c += a 等效于 c = c + a |
-= | c -= a 等效于 c = c - a |
*= | c *= a 等效于 c = c * a |
/= | c /= a 等效于 c = c / a |
//= | c //= a 等效于 c = c // a |
%= | c %= a 等效于 c = c % a |
**= | c ** = a 等效于c = c ** a |
- 单个变量赋值:a=5
- 多个变量赋相同的值,等号(=)相连,传递赋值:a = b = 5
- 多个变量赋不同的值,逗号(,)相隔:a , str1 = 5 , ‘hello’
赋值运算符:先运算右边,再赋值给左边
等号左边,只能是变量,不能是常量或表达式
等号右边,不能是表达式,例如:x = ( y = z + 1 ) 错误
c = 1 + 2 * 3
print(c)#7
a=100
a+=1
print(a)#101
a=100
a*=2
print(a)#200
a=100
a*=2+1#相当于a=a*(2+1),先运算*=右边的2+1
print(a)#300
二、拆包
-
变量个数 = 值的个数
-
变量个数 > 值的个数,报错
-
变量个数 < 值的个数
- 变量个数 = 1,变量个数 < 值的个数,所有值作为一个元组赋值
- 变量个数 > 1,变量个数 < 值的个数,报错
a,b=1,2
print(a,b)#1 2
a=1,2,3
print(a)#(1, 2, 3)
# a,b=1,2,3 #报错
# a,b,c,d=1,2,3 #报错
解决方法:
- 在其中一个变量前加 * ,表示该变量的长度可变
- 并且,所有的变量中,只能有一个变量加 *
x,y,*z=1,2,3,4,5,6
print(x,y,z)#1 2 [3, 4, 5, 6]
x,*y,z=1,2,3,4,5,6
print(x,y,z)#1 [2, 3, 4, 5] 6
*x,y,z=1,2,3,4,5,6
print(x,y,z)#[1, 2, 3, 4] 5 6