【问题标题】:What's the equivalent of AndAlso (&&) and OrElse (||) logical operators in Python?Python 中的 AndAlso (&&) 和 OrElse (||) 逻辑运算符的等价物是什么?
【发布时间】:2023-04-10 12:43:02
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: python python-2.7 logical-operators equivalent


【解决方案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

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      相关资源
      最近更新 更多