布尔代数 - 为什么不(真和假)是真的?

时间:2015-08-21 14:29:25

标签: python boolean boolean-algebra

我正在做“以艰难的方式学习python”这本书。在练习27(http://learnpythonthehardway.org/book/ex27.html),它以布尔代数开始。

所以我的问题是: 为什么not(True and False)是真的?

我是如何理解的,它应该与False and True相同。

5 个答案:

答案 0 :(得分:10)

您的解释不正确,请参阅De Morgan's laws;特别是否定一个连词是否定的否定

not (True and False)对连词的否定 == not(a and b))相当于False or True否定的分离 == (not a) or (not b));请注意从and切换到or

您还可以执行以下步骤:

  • not(True and False)
    • 首先在括号中计算出部分True and False - > False
  • 将该结果替换回表达式:not(False) - > True

答案 1 :(得分:8)

not (True and False)首先简化为not (False),然后进一步简化为True

答案 2 :(得分:0)

你应该看看De Morgan's laws,其中指出(非正式地):

  

“不(A和B)”与“(不是A)或(不是B)”

相同      

另外,“not(A或B)”与“(不是A)和(不是B)”相同。

因此,在您的情况下,not(True and False)not(True) or not(False)相同,False or TrueTrue

相同

答案 3 :(得分:0)

让我们一步一步地做到这一点:

(True and False)评估为(False)

not (False)评估为True

足够简单:)

答案 4 :(得分:0)

按照操作顺序,首先解决括号内的内容,用变量以这种方式查看:

a == True and False == False

not(True and False) == not(a) == not(False) == True

你在想的是:

not(True) and not(False)

这确实是假的,因为:

a == not(True) == False
b == not(False) == True

not(True) and not(False) == a and b == False and True == False