Python 中 & 、| 代表的是位运算符, and 、or、not代表的是逻辑运算符:
1、 python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。如(0和’'均为假值):
>>> 1 and 2 #若所有值均为真,则返回最后一个值
2
>>> 2 and 1 #若所有值均为真,则返回最后一个值
1
>>> 1 and 0 #若存在假,返回第一个假值
0
>>> 0 and 1 #若存在假,返回第一个假值
0
>>> 0 and '' #若存在假,返回第一个假值
0
>>> '' and 0 #若存在假,返回第一个假值
''
2、python 中的or从左到右计算表达式,若所有值中存在真,则返回的是第一个真的值;若所有值中都为假,返回的是最后一个判断条件的值。如(0和’'均为假值):
>>> 1 or 2 #若所有值中存在真,则返回的是第一个真的值
1
>>> '' or 1 #若所有值中存在真,则返回的是第一个真的值
1
>>> 1 or '' #若所有值中存在真,则返回的是第一个真的值
1
>>> 0 or '' #所有值均为假,结果为最后一个判断条件的值
''
>>> '' or 0 #所有值均为假,结果为最后一个判断条件的值
0
3、python 中的not()表达式,若括号内为真,则返回假,若括号内为假,则返回真。如(0和’'均为假值):
>>> a = 10
>>> b = 20
>>> c = 0
>>> d = ''
>>> not(a and b) #括号中结果为b=20
False
>>> not(a and c) #括号中结果为c=0
True
>>> not(b and a) #括号中结果为a=10
False
>>> not(c and a) #括号中结果为c=0
True
>>> not(c and d) #括号中结果为c=0
True
>>> not(d and c) #括号中结果为d=''
True
>>> not(a or b) #括号中结果为a=10
False
>>> not(b or a) #括号中结果为b=20
False
>>> not(a or c) #括号中结果为a=10
False
>>> not(c or a) #括号中结果为a=10
False
>>> not(c or d) #括号中结果为d=''
True
>>> not(d or c) #括号中结果为c=0
True