“笨办法”学Python 3:布尔表达式练习

网友投稿 242 2022-09-07


“笨办法”学Python 3:布尔表达式练习

在编程中,布尔逻辑可以说是无处不在的。它们是计算机运算的基础部分,掌握它们就跟学音乐掌握音阶一样重要。

在这个习题中,将在Python里使用前一个习题中学到的逻辑表达式。先为下面的每一个逻辑问题写出你的答案,每一题的答案要么为​​True​​​要么为​​False​​。写完以后,在终端中启动Python,录入这些逻辑语句,确认你写的答案是否正确。

1.​​True and True​​

2.​​False and True​​

3.​​1 == 1 and 2 == 1​​

4.​​"test" == "test"​​

5.​​1== 1 or 2 != 1​​

6.​​True and 1 == 1​​

7.​​False and 0 != 0​​

8.​​True or 1 == 1​​

9.​​"test" == "testing"​​

10.​​1 != 0 and 2 == 1​​

11.​​"test" != "testing"​​

12.​​"test" == 1​​

13.​​not (True and False)​​

14.​​not (1 == 1 and 0 != 1)​​

15.​​not (10 == 1 or 1000 == 1000)​​

16.​​not (1 != 10 or 3 == 4)​​

17.​​not ("testing" == "testing" and "Zed" == "Cool Guy")​​

18.​​1 == 1 and not ("testing" == 1 or 1 == 0)​​

19.​​"chunky" == "bacon" and not (3 == 4 or 3 == 3)​​

20.​​3 == 3 and not ("testing" == "testing" or "Python" == "Fun")​​

在这个习题结尾的地方我会给你一种帮助你理清复杂逻辑的技巧。

所有的布尔逻辑表达式都可以用下面的简单流程得到结果。

1.找到相等判断的部分(​​==​​​或​​!=​​​),将其改写为其最终值(​​True​​​或​​False​​)。

2.找到括号中的​​and/or​​,先算出它们的值。

3.找到每一个​​not​​,算出它们取反的值。

4.找到剩下的​​and/or​​,解出它们的值。

5.都做完后,剩下的结果应该就是​​True​​​或者​​False​​了。

下面以第20个逻辑表达式演示一下:

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

接下来你将看到这个复杂的表达式是如何被逐级解为一个结果的。

1.解出每一个相等判断。

a. 3 != 4为True: True and not ("testing" != "test" or "Python" == "Python") b. "testing" != "test"为True: True and not (True or "Python" == "Python") c. "Python" == "Python"为True: 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会话中得到的结果。

$ python3.6Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12)[GCC 4.0.1 (Apple Inc. build 5465)] on DarwinType "help", "copyright", "credits" or "License" for more information.>>> True and TrueTrue>>> 1 == 1 and 2 == 2True

巩固练习

1.Python里还有很多和​​!=​​​和​​==​​​类似的操作符。试着尽可能多地列出Python中的“相等运算符”,如​​<​​​或者​​<=​​。

2.写出每一个“相等运算符”的名称,如​​!=​​叫“不等于”。

3.在Python中测试新的布尔运算符。在按回车键前你需要说出它的结果。不要思考,凭自己的第一感觉就可以了。把表达式和结果用笔写下来再按回车键,最后看自己做对多少,做错多少。

4.把习题3中写的那张纸丢掉,以后你再也不需要查它了。

常见问题回答

为什么​​"test" and "test"​​​返回​​"test"​​​,1 ​​and​​​ 1返回1,而不是返回​​True​​呢?

Python和很多编程语言一样,都是给布尔表达式返回两个被操作对象中的一个,而非​​True​​​或​​False​​​。这意味着,如果你写了​​False and 1​​​,得到的是第一个操作数(​​False​​​),而非第二个操作数(​​1​​​),但如果你写的是​​True and 1​​​,得到的是第二个操作数(​​1​​)。多做几个实验。

​​!=​​​和​​<>​​有何不同?

在Python中!=是主流用法,​​<>​​将被逐渐废弃,所以你应该使用前者,除此以外没什么不同。

有没有短路逻辑?

有的。任何以​​False​​​开头的​​and​​​语句都会直接处理成​​False​​​,不会继续检查后面的语句。任何包含​​True​​​的​​or​​​语句,只要处理到​​True​​​,就不会继续向下推算,而是直接返回​​True​​了。不过,还是要确保你能理解整个语句,因为日后这会很有用。

本文摘自《笨办法学Python 3》

在本书中,你将通过完成52个精心设计的习题来学会Python语言。阅读这些习题,照着录入代码(不要复制和粘贴!),修正自己的错误,观察程序的运行。在这个过程中,你将学会计算机的工作原理,知道怎样的程序才算是好程序,以及如何读、写和思考代码。作者还提供了5个多小时的视频,教你如何破坏、修正和调试代码,整个过程就像一边做题一边直播一样。一开始会很难,但很快你就会上手,并且会感觉很棒!

本书适合以下人群阅读

● 零编程经验的初学者

● 了解一两门编程语言的初级人员

● 多年未写过代码的转岗专业人员

● 有丰富的编程经验,想通过快速、简单的速成课程了解Python 3的专业人员


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python自动化运维实战:从Linux系统中收集数据(python环境下的数据操作)
下一篇:SpringCloud学习笔记之Feign远程调用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~