Python中的赋值语句就是把对象赋值给变量,基本形式是在等号左侧写赋值语句的目标,要赋值的对象则位于等号右侧;等号左侧是对象或对象组件,等号右侧可以是任何通过计算能得到对象的表达式;赋值语句总是创建对象的引用,而不是复制对象;
Python3中赋值语句有如下形式:
赋值语句形式:
1:基础形式
>>> s='ixusy88'>>> s'ixusy88'>>>
2:元组赋值
>>> (s1,s2) = ('123','abc')>>> s1,s2('123', 'abc')>>> #也可以不需要括号()>>> s1,s2 = '111','cccc'>>> s1,s2('111', 'cccc')>>> # 左边与右边的元素个要一致,不然会报错,如下:>>> s1,s2 = '111','222','333'Traceback (most recent call last): File "", line 1, in s1,s2 = '111','222','333'ValueError: too many values to unpack (expected 2)>>>
3:列表赋值
>>> [a,b] = ['123','abc']>>> a,b('123', 'abc')>>> # >>> a,b = ['123','abc']>>> a,b('123', 'abc')>>> # 等号右边可以是元组>>> [a,b] = '123','abc'>>> a,b('123', 'abc')# 等号 两边元素需要一致>>> [a,b,c] = ['123','abc']Traceback (most recent call last): File "", line 1, in [a,b,c] = ['123','abc']ValueError: not enough values to unpack (expected 3, got 2)>>> [a,b] = ['123','abc','444']Traceback (most recent call last): File "", line 1, in [a,b] = ['123','abc','444']ValueError: too many values to unpack (expected 2)>>>
4:序列赋值
>>> a,b,c,d = '1234'>>> a,b,c,d('1', '2', '3', '4')>>> # 等号两边元素要一致>>> a,b,c,d = '123'Traceback (most recent call last): File "", line 1, in a,b,c,d = '123'ValueError: not enough values to unpack (expected 4, got 3)>>> a,b,c = '1234'Traceback (most recent call last): File "", line 1, in a,b,c = '1234'ValueError: too many values to unpack (expected 3)>>>
5:序列解包
# 带星号的名称,会被赋值一个列表,该列表收集了序列中剩下的没被赋值给其他名称的所有项>>> a,*b = 'ixusy88'>>> a,b('i', ['x', 'u', 's', 'y', '8', '8'])>>> a,*b,c = 'ixusy88'>>> a,b,c('i', ['x', 'u', 's', 'y', '8'], '8')>>> >>> a,*b = [1,2,3,4]>>> a,b(1, [2, 3, 4])>>> a,*b,c = [1,2,3,4,5]>>> a,b,c(1, [2, 3, 4], 5)>>> >>> a,*b,c = range(5)>>> a,b,c(0, [1, 2, 3], 4)>>> a,*b,c = [1,2,3]>>> a,b,c(1, [2], 3)>>>
6:多目标赋值
# 三个变量指向了同一个对象>>> a=b=c = 'ixusy88'>>> a,id(a)('ixusy88', 2197246939464)>>> b,id(b)('ixusy88', 2197246939464)>>> c,id(c)('ixusy88', 2197246939464)>>>
7:增量赋值
增量赋值语句有:
x += y x &= y x -= y x |= y
x *= y x ^= y x /= y x >>= y
x %= y x
# "+=" 对列表而言是在原位置修改:a = [1,2,3]b = [3,4,5] print('1----',id(a),a)print('2----',id(b),b)a+=bprint('3----',id(a),a) print('*'*10)# "+" 是拼接,会产生新的对象:x = [10,20,30]y = [30,40,50]print('4----',id(x),x)print('5----',id(y),y)x = x + yprint('6----',id(x),x)
领取专属 10元无门槛券
私享最新 技术干货