我对python中的逻辑'And'和'or'组合感到困惑
我从Python's Logical Operator And那里得到了一些想法,但是我不明白'AND'和'OR'的组合
a=3
print(a%2 and 'odd' or 'even')
我了解a为2时的打印效果如何,即
a = 2,2%2 = 0 =>错误。
然后将Note String对象视为True,因此'odd'和'even'为True。
因此False and True(odd) or True(even)
将成为False(even)
对象。
但是当我什至不知道如何工作时。如果第一个对象为True
,则输出应立即为True
,而不检查其他条件(或操作),它如何进行并打印“偶数”
答案 0 :(得分:2)
如果您想尝试模仿JavaScript或其他语言的三元运算符,则必须执行以下操作:
print("even" if a%2 == 0 else "odd")
编辑:即使该问题已经结束(我不认为应该如此),我也会在了解您的问题实际提出的内容的基础上进行编辑。
在python bool(1) == True
和bool(0) == False
中,请注意当您对2取模时,这是您可以获得的唯一两个可能的值。
现在返回您的原始印刷声明:
print(a%2 and 'odd' or 'even')
结合以下事实:陈述为... and [...] or ...
的第一个条件为真,返回第二个,如果陈述为false。
然后可以清楚地看到,当数字为奇数导致模2的值为1时,它将返回第一个条件“奇数”,而当其为0时,它将使第二个条件返回“偶数”。
我希望这能解释一切。