Python真值表

问题描述

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

This is the table in question

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

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

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

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

解决方法

如果您先计算括号内的表达式,您将得到一个布尔值,然后对该值执行 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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...