Den*_*nis 4 python equivalent logical-operators python-2.7
在 .NET VB 和 C# 中,我们可以使用 AndAlso ( && )、OrElse ( || ) 进行逻辑运算
在 Python 中,等效的逻辑运算符是什么?它们是否仅限于“和”和“或”?
更新:以下是 And/Or 和 AndAlso/OrElse 之间的区别
引用自/sf/answers/588664191/
Or/And 将始终评估两个表达式,然后返回结果。它们不是短路评估。
OrElse/AndAlso 是短路的。仅当无法仅从左侧表达式的评估中确定结果时,才会评估右侧表达式。(这意味着:如果左表达式为假,OrElse 只会计算右表达式,如果左表达式为真,AndAlso 只会计算右表达式。)
Python 已经这样做了:
def foo():
print ("foo")
return True
def bar():
print ("bar")
return False
print (foo() or bar())
print ("")
print (bar() or foo())
Run Code Online (Sandbox Code Playgroud)
返回:
foo
True
bar
foo
True
Run Code Online (Sandbox Code Playgroud)
Python 中不需要 AndAlso 或 OrElse,它会懒惰地评估布尔条件(docs)。