我对 python 中的逻辑“与”和“或”组合感到困惑
我从 Python's Logical Operator And 得到了一些想法但我无法理解“AND”和“OR”的组合
a=3
print(a%2 and 'odd' or 'even')
我明白如果 a 是 2 即是如何打印 Even 的。
a= 2, 2%2 = 0 => 假。
然后 Note String 对象被视为 True,因此“奇数”和“偶数”都是 True。
所以False and True(odd) or True(even)
将给出 False(even)
对象。
但是当我不明白 Even 是如何工作的时候。如果第一个对象是 True
那么输出应该是立即 True
不检查其他条件(或操作),它如何进一步并打印“偶数”
最佳答案
如果您正在考虑尝试模拟 JavaScript 或其他语言的三元运算符,则必须这样做:
print("even" if a%2 == 0 else "odd")
编辑:即使这个问题已经关闭(我认为不应该如此),我也会在了解您的问题实际要问的内容的情况下对其进行编辑。
在 python 中 bool(1) == True
和 bool(0) == False
请注意,当您对 2 取模时,这些是您可以获得的仅有的两个可能值.
现在回到原来的打印语句:
print(a%2 and 'odd' or 'even')
将 1 为 true、0 为 false 的事实与语句 ... and [...] or ...
在语句为 true 时返回的事实相结合如果为 false,则第二个返回。
可以清楚地看到,当数字为奇数导致数字模 2 为 1 时,它将返回第一个条件“奇”,而当数字为 0 时,它将导致第二个条件返回“偶”。
我希望这能解释一切。
关于python - Python 中的高级逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57224895/