python - Python 中的 bool 表达式

标签 python boolean-expression

我有一个正在运行的 Python 脚本,用于测试两个条件的结合,其中一个很容易验证,而另一个很难。假设我在 Python 中将其编写为 easy_boole 和 hard_boole。解释器是否总是先检查 easy_boole,然后在 easy_boole == False 时返回 False?解释器是否总体上经过优化以尽快解决这些类型的语句?

最佳答案

是的,andor 都是所谓的短路运算符。 and 表达式的计算在值为假时结束,or 表达式的计算在值为真时立即结束。

可以找到相关文档here .

这是一段代码,您可以通过它自己观察这种行为:

def fib(n):
    if n <= 2:
        return 1
    return fib(n-1) + fib(n-2)

print(False and fib(100)) # prints False immediately
print(True and fib(100)) # takes very, very long
print(fib(100) and False) # takes very, very long

考虑到这一点,请始终使用 easy_boole 和 hard_boole

关于python - Python 中的 bool 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34558835/

相关文章:

java - "?"和 ":"在 boolean 语句中做什么?

python - Python 中的 BrokenPipeError 但 Perl 中没有

Tkinter 网格管理器中的 Python 类

python - 如何将tableau(twbx)文件读入python?

python - 如何用Python绘制时间序列热图?

python - 使用 Python C 类型在 kernel32 上调用 GetModuleHandle

Java 8+ 流 : Check if list is in the correct order for two fields of my object-instances

c++ - bool 表达式作为模板参数

java - 比较两个数组的元素