我已经学习 Python 几个星期了,我偶然发现了一个关于编程基础知识的有趣视频,它解释了德摩根定律。该定律来自称为布尔代数的数学领域。

尽管这不是您在编程中每天都会面临的问题——至少对于定理本身而言,理解这些概念在编码时会非常有帮助,特别是在复合条件时。这是我们作为开发人员经常做的事情。

基本上,根据维基百科,法律说“析取的否定是否定的合取”和“合取的否定是否定的析取”。

我们可以这样总结 Python 表达式:

not (x or y) == not x and not y not (x and y) == not x or not y

注意一个: 就像在数学中一样,当我们将括号之间的一组因子乘以单个因子(例如 2(x + 3))时,我们通过将它乘以括号内的所有元素来分配因子。这种情况也不例外。

**注意二:**一旦我们将“非”分配给运算符(和/或),就是将它取反并将其转换为相反运算符的简单操作(什么是“和”变成“或”,反之亦然) .

为什么理解这些简单的表达会有用?

因为一旦你这样做了,你就会明白真值表的重要性。真值表可用于表示条件语句的所有可能值及其可能结果。这意味着我们获得了 if 语句的所有可能场景,并检查我们创建的语句是否表达了我们的需要。

例子:

所以我们可以通过一个简单的例子来更好地理解。让我们考虑以下表达式:

x and y or z

如果我们创建一个包含 x、y 和 z 的所有可能值的真值表,我们将得到如下内容:

[图像描述](https://res.cloudinary.com/practicaldev/image/fetch/s--FeZ2IeF8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/306gk4pvn3f1ed4pb756.png)

我们得到了八种组合,其中五种的计算结果为True

容易,对吧?对于一个简单的例子来说可能很明显。但是根据上下文,条件可能会变得更复杂,创建这些验证以确保您创建的条件准确评估您的期望是很重要的。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐