Python进阶之路 3.2 有趣的赋值操作

3.2 有趣的赋值操作

赋值操作是再简单不过了,在前面的章节也多次使用了赋值操作。不过Python语言中的赋值操作要有趣得多。例如,可以同时将多个值赋给多个变量。

x,y,z = 1,2,3
print(x,y,z)

1 2 3

在上面的代码块中,将1、2、3分别赋值给了x、y、z三个变量,并输出这三个变量的值。使用Python语言中的这个特性可以很容易实现两个变量中值的交换。

x,y = 20,30
x,y = y,x
print(x,y)

30 20

x,y,z = 1,2 这种同时将多个值赋给多个变量的操作,等号(=)左右两侧的变量名和变量个数必须相等,否则将抛出异常。

Python语言的这种特性称为序列解包(sequence unpacking),其实任何一个迭代(iterable)的对象都支持这一特性。关于迭代对象(列表、集合)的详细信息会在以后的章节介绍。

Python语言还支持链式赋值(chained assignments)和增量赋值(augmented assignments),链式赋值是指将同一个值连续赋给多个变量。

x = y = 20

增量赋值是指将变量自身增加或减小(负增量)指定值的表达式的简化形式。例如,x = x+2,如果用增量赋值表达式,可以写成x += 2,也就是将等号(=)右侧的x省略,并将加号(+)放到等号(=)左侧。例如:

x = 5
x += 2
print(x)

7

意思就是说,x的值是5,x += 2相当于,x = 5+2的值在赋值给x,最后输出x变量结果是7。

其实前面介绍的二元运算符都支持增量赋值,例如,x = x * 20可以写成x *= 20, x = x % 3 可以写成 x %= 3。

[例 3.2] 本例演示了序列解包、链式赋值和增量赋值的使用方法。

x,y,z = 1,2,3       #使用序列解包方式进行赋值
print(x,y,z)

x,y = y,x           #利用序列解包交换x和y的值
print(x,y)

#x,y,z = 1,2        #抛出异常
#x,y = 1,2,3        #抛出异常

x = y = z = j = 20          #使用链式赋值设置x、y、z、j
print(x,y,z,j)

x *= 2              #乘法增量赋值
y %= 3              #除法负增量赋值
z -= 1              #减法负增量赋值
j += 1              #加法增量赋值
print(x,y,z,j)

输出结果:
1 2 3
2 1
20 20 20 20
40 2 19 21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值