赋值运算符、逻辑运算符

赋值运算符 =

  1. 例如:将18赋值给age
age = 18

增量赋值 = - += -=

  1. 将age的值加1或者减1
age = 18
age = age + 1
age += 1  # 与上面的功能是一样的,但这样表达语句更简洁

age = age - 1
age -= 1  # 同样,语句上更简洁一些,同时不影响代码可读性

交叉赋值

  1. 例如:x = 111, y = 222
    如果要将他俩的值互换,应该怎样实现
    一种方式是:
x = 111
y = 222
temp = x
x = y
y = temp

上述方式需要另外申请变量来完成x,y值的互换
另一种方式:

x = 111
y = 222
x, y = y, x

用一行简单的代码就可以实现,非常简洁高效

链式赋值

将10赋值给多个变量,可以一个一个的给变量赋值,也可以使用一行代码实现,链式赋值更加的简洁方便

x = 10
y = 10
z = 10


x, y, z = 10

解压赋值

  1. 当我们从存有多个数据的数据类型红取值时,用最普通的方式取如下:
salaries = [111, 222, 333, 444, 555]
mon0 = salaries[0]
mon1 = salaries[1]
mon2 = salaries[2]
mon3 = salaries[3]
mon4 = salaries[4]

显然一个一个的去取值还是比较繁琐

  1. 我们可以用如下方式一次性将所有数值去除,一一对应到不同的变量中
mon0,mon1,mon2,mon3,mon4=salaries
print(mon0)
print(mon1)
print(mon2)
print(mon3)
print(mon4)

注意1: 变量名与值的个数必须一一对应
mon0,mon1,mon2,mon3,mon4,mon5=salaries # 多一个变量名不行
mon0,mon1,mon2,mon3=salaries # 少一个变量名不行

  1. 有时候我们并不需要把所有的值都取出来,我们只想要前几个数据或者后几个数据,可以用以下方式:
salaries = [111, 222, 333, 444, 555]
mon0,mon1,*_=salaries  # mon0、mon1用于存放前两个数值,*_存放了后面所有数值
print(mon0)
print(mon1)
print(_)

*_,x,y=salaries  # x,y存放了后面两个数值,*_存放了前面的所有数值
print(x,y)
print(_)

x,*_,y,z=salaries  # x存放第一个数值,y存放了最后一个数值,*_存放了中间的所有的数值
print(x)
print(y)
print(z)

_,*midlle,_=salaries
print(midlle)
dic={'k1':111,'k2':222,'k3':3333}
x,y,z=dic  # 赋值给x,y,z的是key值
print(x,y,z)
print(dic[x],dic[y],dic[z])  # 使用key值来取对应的值
x, y, z,a,b = "hello"  # 同样变量数量要与字符数量相等,不然会报错

逻辑运算符

条件:能得到True或者False两种值的都可以当作条件

  1. 显示的布尔值:表面上看上去直接就是True或False
    (1)比较运算的结果
print(10 > 3)
print(10 == 3)

(2)变量值直接就是True或False

tag = True
  1. 式的布尔值:表面上看上去是一种值,在底层会被解释器转换成True或False
    0、None、空对易经的布尔值都为False,其余对应的布尔值均为True

逻辑运算符not

not 条件:对条件的结果取反

not 10 > 3  # 结果为False
not False  # 结果为True

逻辑运算符and

条件1 and 条件2:连接左右两个条件,两个条件只要有一个为True,最终结果就为True

print(True 10 > 3)  # True
print(True and 10 == 3)  # False

逻辑运算符or

条件1 or 条件2:连接左右两个条件,两个条件只要有一个为True,结果就为True

print(False or 10 == 3)  # False
print(True or 10 == 3)  # True

逻辑运算符优先级

优先级:not > and > or,推荐用括号取标识优先级

res = 3 > 4 and 4 > 3 or not 1 == 3 and 'x' == 'x' or 3 > 3
print(res)

res=(3 > 4 and 4 > 3) or (not (1 == 3 and 'x' == 'x')) or 3 > 3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值