开发者学堂课程【Python入门 2020年版:赋值运算符的特殊场景】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10251
赋值运算符的特殊场景
内容介绍
一、等号连接的变量的赋值应用
二、“拆包”的应用
三、可变长度“*”的应用
一、等号连接的变量的赋值应用
1.场景一
a=b=c=d=’hello’
//算数运算符运算规则为从右至左,‘hello’的赋值给d,d=‘hello’
,d的值赋值给c,c=‘hello',以此类推。
print(a,b,c,d)
//输出a,b,c,d的值。
运行结果:
hello hello hello hello
Process finished with exit code 0
2.场景二
x=’yes’=y=z
//该写法为错。原因为等号左边不能为常量,’yes’为常量;y无法赋值给’yes’,故会报错。
二、“拆包”的应用
1.可拆包场景一
m,n=3,5
//将3赋值给m,5赋值给n。该串代码等价于m,n=(3,5),此处括号可省略。(3,5)为一个元组,将此元组拆包拆为多个数据,然后一一对应。
print(m,n)
//输出m,n。
运行结果:
3 5
Process finished with exit code 0
2.可拆包场景二
x=’hello’,’good’,’yes’
//(’hello’,’good’,’yes’)为一个元组赋值给x,Python语言中,特殊情况下“()”可以省略。
print(x) //输出x的值。
运行结果:
(‘hello’,’good’,’yes’)
Process finished with exit code 0
3.拆包时,变量个数和值的个数不一致会报错
(1)变量个数小于值的个数
y,z=1,2,3,4,5 //数据量的值大于变量的值,(too many values to unpack)需拆包的值的数量过多。
print(y,z)
//输出y,z的值。
运行结果:
ValueError:too many values to unpack(expected 2)
Process finished with exit code 1
(2)变量个数大于值的个数
o,p,q=4,2 //not enough values to unpack,
数值的变量小于变量的数量。
print(o,p,q)
//输出o,p,q的值。
运行结果:
Process finished with exit code 1
三、可变长度“*”的应用
1.举例讲解说明
(1)写法一
o,*p,q=1,2,3,4,5,6
//”*p”表示变量p长度可变。
print(o,p,q)
//输出o,p,q的值。
运行结果:
1 [2,3,4,5] 6
Process finished with exit code 0
(2)写法二
*o,p,q=1,2,3,4,5,6
//“*o”为可变长度变量,6赋值给q,5赋值给p,‘1,2,3,4’赋值给o。
print(o,p,q)
//输出o,p,q的值。
运行结果:
[1,2,3,4] 5 6
Process finished with exit code 0
(3)写法三
o,p,*q=1,2,3,4,5,6
//“*q”为可变长度变量,1赋值给o,2赋值给p,‘3,4,5,6’赋值给q。
print(o,p,q)
//输出o,p,q的值。
运行结果:
1 2 [3,4,5,6]
Process finished with exit code 0