逻辑运算
-
逻辑运算符是python用来进行逻辑判断的运算符,虽然运算符只有and、or、not三种,但是理解这三个运算符的原理才是最重要的
-
python中对false的认定
逻辑运算符是python用来进行逻辑判断的运算符,虽然运算符只有and、or、not三种,但是理解这三个运算符的原理才是最重要的
-
and运算符
-
两边都是表达式的情况:
例子:print(30>20 and 40>30),运行结果为TRUE
print(30>20 and 4>30),运行结果为FALSE
-
一边是变量,另一边是表达式的情况 :
**例子:**print(20 and (c:=30)>20),运行结果是TRUE
print(20 and (d:=20)>30),运行结果为FALSE
-
两边都是变量的情况 :
例子:a=20,b=30,那么print(a and b) 运行结果为 30
a=20,b=30,那么print(b and a) 运行结果为 20
这个情况其实是最难以理解的,顺着下面的思路来。
首先,and运算符的左边是a,这是个变量而不是表达式,所以无需判断左边一定是TRUE,而右边情况也是一样的,那么以为着两边的运算结果都是TRUE。
而python当中对于这种情况是有定义的,当and 从左到右,若所有值均为真,则返回后一个值,只要有一个假的值,则返回第一个假的值。
-
-
or运算符
-
两边都是表达式的情况:
例子:print(30>20 or 40>30),运行结果为TRUE
print(30>20 or 4>30),运行结果为TRUE
print(3>20 or 4>30),运行结果为FALSE
-
一边是变量,另一边是表达式的情况:
例子:print(20 or (c:=30)>20),运行结果是20
print(20 or (d:=20)>30),运行结果为20
-
两边都是变量的情况:
例子:print(20 or 30),运行结果是20
print(30 or 20),运行结果为30
当or从左到右,若所有值均为假,则返回后一个值,只要有一个真的值,则返回第一个真的值
print(0 or {}) # result {}
-
not运算符
例子:print(not(20>10)),运行结果为FALSE
print(not(10>20)),运行结果为TRUE
-