Python如何实现赋值操作
admin
2023-07-08 07:24:48
0

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

相关内容

热门资讯

我国科学家为细胞信号“导航”开... 新华社济南5月31日电(记者张力元)人体细胞犹如一座精密的通信城市,每天都有大量“指令”穿梭传递,调...
极端大风突袭哈尔滨!过山车停摆... 极目新闻记者 詹钘5月31日,受强对流天气影响,哈尔滨国际会展中心体育场相关设施受到损坏,原计划当晚...
三原电缆取得电缆接头连接用防护... 国家知识产权局信息显示,上海三原电缆附件有限公司取得一项名为“一种电缆接头连接用防护结构”的专利,授...
原创 识... 还是那句话,机圈苦大屏久已…… 虽然大屏有大屏的美,但是小屏也有小屏的俏。在大屏旗舰占据主流的手机市...
玄戒技术取得分频电路专利,实现... 国家知识产权局信息显示,北京玄戒技术有限公司取得一项名为“分频电路、分频器、射频芯片和电子设备”的专...
为什么今年香会基调明显变了 5月29日—31日在新加坡举行的第23届香格里拉对话会(简称“香会”),见证着元首引领下大国关系继续...
成本几毛钱、假驱蚊液香精兑水,... 入夏升温,蚊虫进入活跃期,驱蚊防护成为民生刚需,《财经调查》持续接到消费者投诉,他们买到的多款网红驱...
越来越多80后90后,正在丧失... 六一儿童节到来之际,朋友圈里开始出现一种熟悉的热闹。有人晒出零食礼包,有人半开玩笑地向伴侣讨礼物,还...
洋保电子取得用于低温环境的电气... 国家知识产权局信息显示,洋保电子(太仓)有限公司取得一项名为“一种用于低温环境的电气柜”的专利,授权...
中日韩飞手争霸宁波!2026无... 潮新闻客户端 记者 陈冲 通讯员 朱凝 5月31日,2026小遛·无人机竞速世界杯(中国·宁波鄞州站...