如果以下变量表示以下布尔值,将全面评估以下哪项:将检查第一个选项并包含第二个选项
a = True
b = False
not a or b
a and b
a or b
not and b
b and a
b or a
我尝试应用 and, or, not 的布尔原理,似乎我仍然无法得到正确的结果,失败了。我评估了以下选项
not a or b **short circuit**
a and b **full evaluation**
a or b **short circuit**
not a and b **full evaluation**
b and a **short circuit**
b or a **full evaluation**
您可以使用带有
a = True
的函数来代替变量 b = False
print()
来查看执行了哪个函数。
def a():
print('a = True')
return True
def b():
print('b = False')
return False
print('---')
print('not a or b')
print('result:', (not a()) or b())
print('---')
print('a and b')
print('result:', a() and b() )
print('---')
print('a or b')
print('result:', a() or b())
print('---')
print('not a and b')
print('result:', (not a()) and b())
print('---')
print('b and a')
print('result:', b() and a())
print('---')
print('b or a')
print('result:', b() or a())
结果:
--
not a or b
a = True
b = False
result: False
---
a and b
a = True
b = False
result: False
---
a or b
a = True
result: True
---
not a and b
a = True
result: False
---
b and a
b = False
result: False
---
b or a
b = False
a = True
result: True