【问题标题】:Python truth tables [duplicate]Python真值表[重复]
【发布时间】:2021-09-05 22:08:00
【问题描述】:

我不熟悉编码和在线学习 Python 基础课程。我正在讨论的当前部分使用布尔运算符讨论真值表。我正在关注其中的大部分内容,但是无论我经历多少次,都有一部分对我来说毫无意义。

这个想法是,对于数字 1 到 12 中的每一个,我们需要说明哪些结果最终是正确的,哪些结果是错误的。我对 1-5、7-8、10-12 没问题,但我总是把 6 和 9 弄错。

首先,我会先评估括号内的值(因为#6 A 为真,B 为假),然后用非(假或真)反转它们。由于其中一个是真的,我认为整个事情都是真的,因为它是一个“或”,但答案说它是错误的。 #9的情况也是如此,只是最终结果是(真或假),但按照相同的逻辑,我认为总体答案应该是正确的。

我试图继续课程,稍后再讨论,但他们讨论的下一件事是将分配属性应用于这些表达式的能力。使用它,我回到示例并提出了相同但显然不正确的答案。将整个陈述视为“不是 A 或不是 B”,我得出了相同的结论,即 #6 说“假或真”和 #9 说“真或假”,这两者似乎都是真的,因为我们正在使用“或”不是“和”

请解释我在这里缺少什么,我无法理解这一点。提前致谢!

【问题讨论】:

  • 如果A or B 为真,那么not (A or B) 为假。这就是not 的意思。 not (A or B) 与not A or not B不同。
  • 布尔分布也改变了运算符。 not (A or B) 不是(not A) or (not B),而是(not A) and (not B)
  • 哦,好吧,我错过了 or 更改为 and 的部分。感谢您的帮助,这让我发疯了!
  • 它不会“更改为 and”,只是在 -2 x -4 中将 -4 更改为 4。该原理被称为“德摩根定律”。

标签: boolean-logic truthtable


【解决方案1】:

如果您首先计算括号内的表达式,您将得到一个布尔值,然后not 操作对该值执行。

例如:

1

a = True
b = False

print(a or b)

输出

True

2

print(not (a or b)) # which is equal to print(not(True))

输出

False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2018-12-31
    • 2014-02-19
    相关资源
    最近更新 更多