while循环,不管有多少条件,都会看做是一个条件
while
(条件1 and 条件2 or 条件3 ……
)
红色括号内算是while的条件,不管你写多少,最终看的是整个的结果。
对于这多个条件结果的运算,那就是另外一回事儿了。多逻辑条件表达式的运算
多逻辑表达式运算,
先进行优先级划分,然后从左向右开始运算,运算过程中会有短路逻辑判断,返回值是最后一步运算所得到的值。
在Python中,逻辑运算符的优先级是最低的,要低于所有的其他运算符。
这三个运算符的优先级呢,也是有区别的,not>and>or,同一优先级从左至右进行运算,即当表达式中有多个逻辑操作符时,优先对not进行运算,之后是and,最后是or运算。
例如:表达式 a or b and not c,实际上进行运算的是a or (b and (not c))
那它们的返回值是不是逻辑值呢?
答案:
一元操作符not的返回值是逻辑值True或False,
二元操作符and和or的返回值不一定是逻辑值,而且一般情况都不 是逻辑值。这是咋回事儿呢?它们是怎么运算的呢?
我们进行详细分析。
先说说比较简单的not。这个一元操作符直接对操作对象进行bool判断,not a, 则判断bool(a),若为True,则返回False;若为False,则返回True。
接下来看看and,例如,表达式a and b,该表达式的运算过程,先对a进行bool判断,若bool(a)=False,则返回a值,否则返回b值。
最后我们看看or,例如表达式a or b,该表达式的运算过程:先对a进行bool判断,若bool(a)=True,则返回a值,否则返回b值。
bool为False的值有: 0, None, (), [], {}, ''等。即 0,None,空元组,空列表,空字典,空字符串等
运算过程中会有短路逻辑出现
可以看看我的这个帖子:
Python细节之4、逻辑运算符(and、or、not)