练习 28 布尔练习 Learn Python 3 The Hard Way

大家好呀,上个练习我们记忆了一些逻辑表(说实话那么简单也没啥好记的哈哈),这节课我们做一些逻辑练习。由于没有什么系统的代码,也没有什么地方要交代的,所以我就把原文搬过来了,只在某些地方加了一些注释。大家先看着练习把答案写在纸上,然后在终端里运行 Python,再一行一行通过交互的方式得出答案,看跟自己写得一样不一样。

仔细一点儿,肯定能全对~

练习 28 布尔练习

我们上个练习所学的逻辑组合叫做“布尔”逻辑表达(Boolean logic expressions)。布尔逻辑在编程中无处不在。它是数学计算的基础模块,掌握它就跟掌握音乐里面的音阶一样重要。

在这个练习中,我们将试着在 Python 中运用上个练习中所记忆的逻辑表。给以下每一个逻辑问题写下你认为的答案,要么是 True,要么是 False。把答案写下来之后,再在终端里运行 Python,输入每个逻辑问题,来确认你的答案是否正确。

下面是一个小诀窍,可以帮你解决更复杂的问题。

不论何时,当你看到布尔逻辑表达式,你可以通过以下简单的几步来解它们:

把每一个相等性测试(== 或者 !=)替换成真实性测试(也就是先判断等式的对错)。

再解决圆括号里面的 and/or。

找到每一个 not,然后把它变过来。

找到剩余的 and/or,然后判断。

完成后,你应该得到 True 或者 False。

用一个变量来说明:

3 != 4 and not ("testing" != "test" or "Python" == "Python")

以下是分解的每一步逻辑运算的过程:

1. 先解决每一个相等性测试:

3 != 4 是 True: True and not ("testing" != "test" or "Python" == "Python";

"testing" != "test" 是 True: True and not (True or "Python" == "Python");

"Python" == "Python": True and not (True or True);

2. 找到圆括号里的每一个 and/or:

(True or True) 是 True: True and not (True)

3. 找到每一个 not,然后把它转换过来:

not (True) 是 False: True and False

4. 找到其他剩余的 and/or 然后解决它们:

True and False 是 False。

这样我们就完成了这个测试,并且知道结果是 False。

你会看到

写完你自己的答案后,再用终端运行 Python,通过输入这些逻辑表达式来查看答案,这是你可能会看到的结果:(注:老肖没展示完,剩余部分大家自行练习自行核对)

附加练习

Python 中有很多类似于 和 的运算符,试着尽可能多地找到这类“比较运算符”( equality operators),比如 或者 。

写下这些比较运算符的名字,比如我们把 叫做“不等于”。

在 Python 中输入新的布尔运算,在你敲下回车之前先把答案说出来,别思考,说出你脑子里第一个冒出来的答案。写下来,然后敲回车。算一算你对了多少,错了多少。

记完把纸扔掉,防止你下次再用。

常见问题

为什么 "test" and "test" 返回的是 test,1 and 1 返回的是 1 而不是 True?Python 和其他很多语言喜欢返回布尔表达式的运算数而不只是 True 或者 False。也就是说,如果是 False and 1,你会得到第一个运算数(False),如果是 True and 1,你会得到第二个运算数(1),试着玩玩这个。

和 有区别吗?Python 已经不提倡使用 ,而是更多地使用 ,除此之外,二者没有任何区别。

有捷径吗?有,任何包含一个 False 的 and 表达式结果都是 False。任何包含一个 True 的 or 表达式结果都是 True。但是你要掌握处理整个表达式的过程,后面会用到。

好好学习|天天进步

公众号ID:xuexiier

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180307G1QFNM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券