当"如果"与"或"结合,一个Python首先优先考虑: 例如:
if a == b or c
是(a == b) or c
还是a == (b or c)
。
我认为正确的逻辑形式应该是前者,但我不小心使用了:
if gender == "m' or "M"
令我惊讶的是,它没有产生任何错误并达到了目的。
答案 0 :(得分:0)
下表总结了Python中的运算符优先级 最低优先级(最少绑定)到最高优先级(大多数 结合)。
lambda if – else or and not x in, not in, is, is not, <, <=, >, >=, !=, == ...
所以,回答你的问题,
a == b or c
相当于
(a == b) or (c)
代码if gender == "m" or "M"
的工作方式如下:gender == 'm"
?如果是,则结果为True
。否则,测试&#34;真实性&#34; "M"
。是"M"
&#34;是&#34;?如果是,结果是真的。要了解其工作原理,您应该知道所有对象都具有与之相关的真实性。所有非零整数,非空字符串和数据结构都是True
。 0
,0.0
,''
,None
,False
,[]
,{}
和set()
都是{ {1}}。
有关详细信息,请访问How do I test one variable against multiple values?