一、基本运算符
上篇讲了基本运算符:算数运算符,比较运算符
本篇讲:赋值运算符,逻辑运算符
1、赋值运算符
(1)增量赋值
#也可以age-=1 age*=1 age/=1 age//=1 age%=1 1也可以变成其他,注意灵活运用,一下是一个模板分析 age = 18 age += 1 # age = age + 1 print(age)
(2)交叉赋值
#x,y =y,x 就是被注释的那三行的转换,简单成一横 x = 111 y = 222 # temp=x # x=y # y=temp x, y = y, x print(x) print(y)
(3)链式赋值
#x = y = z = 10就是那三横的转换,简化成一横 #x=10 #y=x #z=y x = y = z = 10 print(id(x),id(y),id(z)) #id相同
(4)解压赋值
PS:解压赋值:多/少一个变量名就会报错;一般用于取开头或结尾几个值;如果要取中间的值用切片(后期会讲);字典取出来的是key;字符串取出来的是每个元素
#最原始的 salaries = [111, 222, 333, 444, 555] mon0 = salaries[0] mon1 = salaries[1] mon2 = salaries[2] mon3 = salaries[3] mon4 = salaries[4] #运用解压赋值后 salaries = [111, 222, 333, 444, 555] 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 # 少一个变量名不行,报错
salaries = [111, 222, 333, 444, 555] #取前两个值 # mon0,mon1,*_=salaries # print(mon0) # print(mon1) # print(_) #取后两个值 # *_,x,y=salaries # print(x,y) # print(_) #取前后两个值 # x,*_,y,z=salaries # print(x) # print(y) # print(z) #取中间部分的值,一般不这么用 # _,*midlle,_=salaries # print(midlle) #字典解压赋值,取出的是key,再用索引取到值 # dic={'k1':111,'k2':222,'k3':3333} # x,y,z=dic # print(x,y,z) # print(dic[x],dic[y],dic[z]) #字符串解压赋值,元素个数要与要解压的值的个数必须一一对应,多/少一个都不行,会报错 # x, y, z,a,b = "hello" # print(x)
2、逻辑运算符
1.1补充
条件:只要能得到True 或 False两种值的东西都能当做条件
1、显式的布尔值 : 表面上看就直接是True或False
(1)比较运算的结果 print(10 > 3) print(10 == 3) (2)变量值直接就是True或False tag = True
2、隐式的布尔值 :表面上看上去是一种值,在底层会被解释器转换成True或False
ps:0、None、空对应的布尔值为False,其余值对应的布尔值均为True
1.2逻辑运算符:用来连接多个条件
(1) not 条件:对条件的结果取反
(2) 条件1 and 条件2:连接左右两个条件,两个条件必须都为True,最终结果才为True
(3) 条件1 or 条件2:连接左右两个条件,两个条件只要有一个为True,最终结果就为True
ps:偷懒原则=》短路运算
(4) 优先级:not > and > or,推荐用括号去标识优先级
# False or True res1=(3 > 4 and 4 > 3) or (not (1 == 3 and 'x' == 'x')) or 3 > 3 print(res1) res2= 3 > 4 and 4 > 3 or not 1 == 3 and 'x' == 'x' or 3 > 3 print(res) res2= (3 > 4 and 4 > 3) or (not 1 == 3 and 'x' == 'x') or 3 > 3 res3= 3 > 4 and 4 > 3 or not 1 == 3 and 'x' != 'x' or 3 > 3 print(res3) print(10 and 0) print(10 and False) print(10 or False)
二、流程控制之if判断
ps:(1)可以只有if部分(2)可以只有if...elif...elif...(3)可以只有if...else...(4)if里面可以嵌套if
注意:if的条件可以放:显示 隐式bool或and or not连接的
if条件是顶级代码
缩进同一空格的属于同一组代码块,从上至下依次运行
条件2能运行的前提是条件1不成立
if判断的完整语法:
if 条件1:
代码1
代码2
代码3
...
elif 条件2:
代码1
代码2
代码3
...
elif 条件3:
代码1
代码2
代码3
...
...
else:
代码1
代码2
代码3
...
# 语法1: """ if 条件1: 代码1 代码2 代码3 ... """ gender = "female" age = 18 is_beautiful = True if gender == "female" and 60 >= age >= 18 and is_beautiful: print('开始表白。。。') print('后续代码。。。')
# 语法2: """ if 条件1: 代码1 代码2 代码3 ... else: 代码1 代码2 代码3 ... """ gender = "female" age = 70 is_beautiful = True if gender == "female" and 60 >= age >= 18 and is_beautiful: print('开始表白。。。') else: print('阿姨好,开个玩笑。。。') print('后续代码。。。')
# 语法3: """ if 条件1: 代码1 代码2 代码3 ... elif: 代码1 代码2 代码3 ... """ # 如果:成绩 >= 90 那么:优秀 # # 如果成绩 >= 80 且 < 90, 那么:良好 # # 如果成绩 >= 70 且 < 80, 那么:普通 # # 其他情况:很差 score = input("请输入你的成绩:") # score = "93" score=int(score) if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 70: print("普通") else: print("很差") print('其他代码。。。。')
# 语法4: """ if的嵌套 """ gender = "female" age = 18 is_beautiful = True is_successful = True if gender == "female" and 60 >= age >= 18 and is_beautiful: print('开始表白。。。') if is_beautiful: print('在一起') else: print('再见。。。') else: print('阿姨好,开个玩笑。。。') print('后续代码。。。')