看下面这代码
>>> x = 1>>> a = 1
>>> b = False
>>> x == a or b
True
>>> x = False
>>> x == a or x == b
True
>>>
可以理解了吧
(X == a ) or b
(X == a) or (X == b)
‘and’、‘or’和‘not’的优先级是not>and>or
首先,‘and’、‘or’和‘not’的优先级是not>and>or。
and :x and y 返回的结果是决定表达式结果的值。如果 x 为真,则 y 决定结果,返回 y ;如果 x 为假,x 决定了结果为假,返回 x。
or :x or y 跟 and 一样都是返回决定表达式结果的值。
not : 返回表达式结果的“相反的值”。如果表达式结果为真,则返回false;如果表达式结果为假,则返回true。
其次,逻辑操作符and 和or 也称作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation):它们的参数从左向右解析,一旦结果可以确定就停止。
例如,如果A 和C 为真而B 为假, A and B and C 不会解析C,作用于一个普通的非逻辑值时,短路操作符的返回值通常是最后一个变量。因此,逻辑运算符的理解也与C语言中不同。举个例子:
在以上例子中,按照C语言对的思维,3 and 4即3与4为3,但是由于是短路操作符,结果为4,是因为and运算符必须所有的运算数都是true才会把所有的运算数都解析,并且返回最后一个变量,即为4;改变一下顺序4 and 3 ,结果也不一样,即为3.
而或逻辑(or),即只要有一个是true,即停止解析运算数,返回最近为true的变量,即 3 or 4,值为3;改变顺序4 or 3 即为4.
介绍逻辑运算符的种类以及使用方法,例子使用pycharm解释器。
电脑:华为MateBook
系统:Windows10
软件:pycharm解释器1.0
1、第一个,逻辑与and,就是并且的意思;写法是:a and b (a,b为python对象),使用方法:如果a为False,a and b返回False,否则它返回b的计算值。举例如图,and左右没用其他逻辑计算仅数字的情况,(我们知道python中,数字0即为Fasle,其他数字为True)。
2、非数字类型的对象,使用and时也是同样的结果;例如下图:(空的列表即为False)。
3、当and左右是其他逻辑运算的情况;同样和上面两种情况一样。例图,and两边是比较运算的结果。
4、第二个,逻辑或or;也就是或者的意思。写法是:a or b (a,b为python对象),用法:如果a为True,它返回a的值,否则它返回b的计算值。第一例子仍以数字来说明。
5、如果or两边是其他的布尔表达式,用法也是与上面相同的;如图中例子中or两边都是比较运算符。
6、第三个:逻辑非not,就是不是的意思;写法not a;(a为python对象)。用法:如果a为True,则返回False;如果a为False,则返回True。