Python 中的 AndAlso (&&) 和 OrElse (||) 逻辑运算符的等价物是啥?

Posted

技术标签:

【中文标题】Python 中的 AndAlso (&&) 和 OrElse (||) 逻辑运算符的等价物是啥?【英文标题】:What's the equivalent of AndAlso (&&) and OrElse (||) logical operators in Python?Python 中的 AndAlso (&&) 和 OrElse (||) 逻辑运算符的等价物是什么? 【发布时间】:2018-05-14 08:05:52 【问题描述】:

在.NET VB和C#中,我们可以使用AndAlso(&&)、OrElse(||)进行逻辑运算

在 Python 中,什么是等效的逻辑运算符?它们是否仅限于“and”和“or”?

更新:以下是 And/Or 和 AndAlso/OrElse 之间的区别 引用自https://***.com/a/8409488/719998

Or/And 将始终计算这两个表达式,然后返回一个 结果。他们不是short-circuiting 评估。

OrElse/AndAlso 是短路的。仅当无法从评估中确定结果时才评估正确的表达式 单独的左表达式。 (这意味着: OrElse 只会评估 如果左表达式为假,则右表达式,并且 AndAlso 将 仅当左表达式为真时才计算右表达式。)

【问题讨论】:

andAndAlso 的逻辑区别是什么?我不知道 VB/C#,所以可能会有所不同,但我无法想象是什么。如果您需要 Python 人员来回答,您应该澄清预期的行为。 请在本教程中查看您的答案:tutorialspoint.com/python/python_basic_operators.htm问候, "or""and""not" 来源:tutorialspoint.com/python/logical_operators_example.htm 戳了一下,听起来 VB 的 AndAlso 是短路的,而 And 不是。 Python 的and 短路。这就是你要找的东西吗? 【参考方案1】:

Python 已经这样做了:

def foo():
    print ("foo")
    return True

def bar():
    print ("bar")
    return False


print (foo() or bar())
print ("")
print (bar() or foo())

返回:

foo
True

bar
foo
True

Python 中不需要 AndAlso 或 OrElse,它会懒惰地评估布尔条件 (docs)。

【讨论】:

【参考方案2】:

在python中,您可以使用逻辑门

例如,您可以使用and&

https://docs.python.org/2/library/stdtypes.html#bitwise-operations-on-integer-types

【讨论】:

以上是关于Python 中的 AndAlso (&&) 和 OrElse (||) 逻辑运算符的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用 And 而不是 AndAlso?

AndAlso 在几个 Expression<Func<T, bool>> 之间:从范围引用

(OrElse and Or) and (AndAlso and And) - 啥时候使用?

VB.NET入门 ANDALSO 和OrElse 之于 AND,OR

布尔运算符 && 和 ||

python中的&位操作[重复]