gpt4 book ai didi

python - 如何评估具有多个条件的条件语句?

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:57 25 4
gpt4 key购买 nike

我希望以相同的方式评估以下两个代码块,但情况似乎并非如此。例如,用这个:

if True or False and False:
print('True')
else:
print('False')

True 被打印出来。但是有了这个:

if (True or False) and False:
print('True')
else:
print('False')

False 被打印出来。这是我的逻辑分解:

  • 对或错 = True
  • 真假 =

通过替换,(True or False) and False = True and False = False

为什么会这样?

最佳答案

这是因为 operator precedence .根据 Python 2.x 和 3.x 文档,and 运算符的优先级高于 or 运算符。另外,看看 bool 真值表:

enter image description here

这意味着在你的表达中:

if True or False and False:

在表达式中,False 和 False 根据优先级组合在一起。这意味着 Python 将其评估为:

if True or (False and False):

现在,它是从左到右求值的。由于第一个条件是 True,它会短路并跳过第二个条件并评估为 True 打印“True”。 (这短路是因为如果第一边为真,它必须为真。)

现在在你的第二个例子中:

if (True or False) and False:

这使得 True or False 首先求值,它给出 True。然后它执行 True and False,即 False,打印“False”。

>>> print(True or False)
True
>>> print(True and False)
False

关于python - 如何评估具有多个条件的条件语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39565195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com