条件与逻辑运算符

一、条件

  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)  # 这两行条件的结果相同

猜你喜欢

转载自www.cnblogs.com/caoyu080202201/p/12426540.html