python - Boolean ,正确答案是什么,为什么?
问题描述
布尔或“真值”表达式是我们在计算机语言中表达控制选择和重复的条件的方式。考虑以下 Python 布尔表达式,其中变量 beta 和 gamma 是布尔类型:
不是(beta 和 gamma)
在任何代数符号中,通常都有几种不同的方式来编写相同的表达式。例如,在整数算术中,表达式“4 x (5 + 2)”的值在数值上等价于表达式“(4 x 5) + (4 x 2)”的值。
以下哪个布尔表达式在逻辑上等价于上述表达式?
答案:
beta 或 gamma
(不是 beta 版)和(不是 gamma 版)
不是(不是测试版)或伽玛
(非 beta)或(非 gamma)
贝塔和(不是伽马)
(不是测试版)和(不是伽玛)我选择的答案是否不正确,有人可以向我解释正确的答案吗?
解决方案
根据德摩根定律,not (A and B)
是not A or not B
。
您可以使用简单的 python 脚本来验证这一点:
In [1]: def test(fn):
...: for beta in [False, True]:
...: for gamma in [False, True]:
...: print(f'beta: {beta}, gamma: {gamma}, ans: {fn(beta, gamma)}')
...:
In [2]: test(lambda beta, gamma: not (beta and gamma))
beta: False, gamma: False, ans: True
beta: False, gamma: True, ans: True
beta: True, gamma: False, ans: True
beta: True, gamma: True, ans: False
In [3]: test(lambda beta, gamma: not beta or not gamma)
beta: False, gamma: False, ans: True
beta: False, gamma: True, ans: True
beta: True, gamma: False, ans: True
beta: True, gamma: True, ans: False
In [4]: test(lambda beta, gamma: not beta and not gamma)
beta: False, gamma: False, ans: True
beta: False, gamma: True, ans: False
beta: True, gamma: False, ans: False
beta: True, gamma: True, ans: False
推荐阅读
- python - 日历项目没有正确缩进和间距 Python 3
- highcharts - 如何从 Highcharts 中删除注释?
- html - 将图像固定在另一个图像之上(响应式)?
- javascript - 让 getStream (stream.io) 在 Angular 应用程序中工作
- sharepoint - 如何获取最近访问的 OneDrive for Business 文件?
- python - 在退出代码中获取输出
- c# - 如何检测 Windows 服务是否已崩溃?
- python - 重新分配字典值列表
- c# - 复制流和 ReadToEndAsync()
- r - 如何通过引用提供现有变量进行变异?