python - Python 中的高级逻辑运算符

标签 python

我对 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) == Truebool(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/

相关文章:

python - 从 python 脚本启动 NGINX

python - 在不同的 ARM 架构上进行编程

python - 自定义tensorflow解码器TypeError : __call__() missing 1 required positional argument: 'inputs'

python - 不支持 TensorFlow 2.0 的 Keras。我们建议使用 `tf.keras` ,或者降级到 TensorFlow 1.14

Python 特征工程师运动数据

python - 如何在 python 中拆分字符串并使用分隔符获得结果?

python - 根据行和列条件中的条件求和

Javascript 和 Django 'static' 模板标签

python - Google Compute Engine 自动杀死 python 可执行文件

python - 使用 lxml 解析 html