一、条件
1、定义:可以作为程序继续运行的前置必要因素。
2、形式:
①直接的布尔值
②由比较运算得出的结果,等于也是一个布尔值
③所有值都隐含着布尔值,所以都可以作为条件使用,其中0,None,空(空字符串'',空列表[],空字典{},等)的隐式布尔值为False,除了这些以外都为True。
二、逻辑运算符
1、定义:为了让计算机像人一样基于判断执行动作,引入逻辑运算符,即,not、and、or。
2、not:逻辑非,把紧跟其后的条件的结果取反,也就是说not与其后面的条件为不可分割的整体。
3、and:逻辑与,用来连接左右两个条件,两个结果同真则整体结果为真,只要有一个假,整体结果就为假。
1 == 1 and 2 == 2 #结果为真 1 == 1 and 2 == 3 #结果为假
4、or:逻辑或,用来连接左右两个条件,只要其中有一个为真,则整体结果就为真,两个都为假,整体结果才为假。
1 == 1 or 2 == 3 # 结果为真 1 == 2 or 2 == 3 # 结果为假
5、短路原则:即偷懒原则,适用于纯and或者纯or组成的条件串,会从左到右依次运算,运算到某位置就可以根据and或者or的特性推断出整体结果时,则不会继续后面的运算。
print(0 or 1 or 2) # 根据短路原则和or的特性有真则真,计算到第二个条件时停止,将当前位置的值输出,所以结果为1 print(1 and 0 and 2) #根据短路原则和and的特性有假则假,计算到第二个条件时停止,将当前位置的值输出,所以结果为0
6,优先级:逻辑运算符混合使用时,执行顺序有优先级,括号()> not > and > or 。但是一般为了保证代码的可读性,应避免混合条件的出现,若实在避无可避,应加上括号。
1 == 2 or not 3 > 4 and 5 < 6 or 7 == 8 and 9 != 10 1 == 2 or ((not 3 > 4) and 5 < 6) or (7 == 8 and 9 != 10) # 这两行条件的结果相同