两种逻辑运算符均为布尔逻辑运算,不返回一个布尔值,而是返回参与运算的两个变量中的一个。
一、Python之and
在布尔上下文中,从左至右进行运算,如果两个变量表达式的运算结果都为真,则返回最后一个表达式的运算结果;如果某个变量表达式的运算结果为假,则返回第一个为假的表达式的运算结果。
#python 3.x
>>> a = 1-1
>>> b = 1+1
>>> c = False
>>> print (b and a and c)
#输出
>>> 0
二、python之or
在布尔上下文中,从左到右进行运算,如果两个变量表达式的运算结果有一个真,则立刻返回该变量表达式的运算结果;如果所有变量表达式的运算结果都为假,则返回最后一个为假的表达式的运算结果。
#python 3.x
>>> a = False
>>> b = 1+1
>>> c = ''
>>> d = 0
>>> print (c or b or a)
>>> print (c or a or d)
#输出
>>> 2
>>> 0
三、运算优先级
在python中,两者处于同一个优先级中,运算遵循从左到右的运算法则,且遵循以上的两种法则。
Ubuntu 14.04安装Python 3.3.5
CentOS上源码安装Python3.4
《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版]