布尔值,正确答案是什么,为什么?

时间:2018-08-27 05:35:12

标签: python boolean

布尔值或“真值”表达式是我们用计算机语言表达控制选择和重复的条件的方式。考虑以下Python布尔表达式,其中变量beta和gamma是布尔类型:

不是(beta和gamma)

在任何代数表示法中,通常有几种不同的方式编写相同的表达式。例如,在整数算术中,表达式“ 4 x(5 + 2)”的值在数值上等于表达式“(4 x 5)+(4 x 2)”的值。

在逻辑上,以下哪个布尔表达式与上面的布尔表达式等效?

答案:
Beta或Gamma

(不是beta)和(不是gamma)

不是(不是beta)或gamma

(不是beta)或(不是gamma)

beta和(不是gamma)

(不是beta)和(不是gamma),但是我选择的答案是否正确,有人可以向我解释正确的答案吗?

1 个答案:

答案 0 :(得分:0)

根据De Morgan's lawnot (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