习题 28: 布尔表达式练习?

上一节你学到的逻辑组合的正式名称是“布尔逻辑表达式(boolean logic expression)”。在编程中,布尔逻辑可以说是无处不在。它们是计算机运算的基础和重要组成部分,掌握它们就跟学音乐掌握音阶一样重要。

在这节练习中,你将在 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. 找到相等判断的部分 (== or !=),将其改写为其最终值 (True 或 False)。
  2. 找到括号里的 and/or,先算出它们的值。
  3. 找到每一个 not,算出他们反过来的值。
  4. 找到剩下的 and/or,解出它们的值。
  5. 等你都做完后,剩下的结果应该就是 True 或者 False 了。

下面我们以 #20 逻辑表达式演示一下:

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

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

  1. 解出每一个等值判断:
    1. 3 != 4True: True and not ("testing" != "test" or "Python" == "Python")
    2. "testing" != "test"True: True and not (True or "Python" == "Python")
    3. "Python" == "Python": True and not (True or True)
  2. 找到括号中的每一个 and/or :
    1. (True or True) 为 True: True and not (True)
  3. 找到每一个 not 并将其逆转:
    1. not (True) 为 False: True and False
  4. 找到剩下的 and/or,解出它们的值:
    1. True and False 为 False

这样我们就解出了它最终的值为 False.

Warning

复杂的逻辑表达式一开始看上去可能会让你觉得很难。而且你也许已经碰壁过了,不过别灰心,这些“逻辑体操”式的训练只是让你逐渐习惯起来,这样后面你可以轻易应对编程里边更酷的一些东西。只要你坚持下去,不放过自己做错的地方就行了。如果你暂时不太能理解也没关系,弄懂的时候总会到来的。

你应该看到的结果?

以下内容是在你自己猜测结果以后,通过和 python 对话得到的结果:

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

加分习题?

  1. Python 里还有很多和 !=== 类似的操作符. 试着尽可能多地列出 Python 中的等价运算符。例如 < 或者 <= 就是。
  2. 写出每一个等价运算符的名称。例如 != 叫 “not equal(不等于)”。
  3. python 中测试新的布尔操作。在敲回车前你需要喊出它的结果。不要思考,凭自己的第一感就可以了。把表达式和结果用笔写下来再敲回车,最后看自己做对多少,做错多少。
  4. 把习题 3 那张纸丢掉,以后你不再需要查询它了。

Project Versions

Table Of Contents

Previous topic

习题 27: 记住逻辑关系

Next topic

习题 29: 如果(if)

This Page

有卖时时彩方面的书吗 神算时时彩软件破解 下注时时彩软件 时时彩彩票玩法技巧 注册码破解软件
重庆时时彩骗局抓获 彩票网站制作平台 江西时时彩出奖结果 山东11选5走势图 时时彩平台晓风
重庆时时彩必输原理 时时彩杀号定胆软件 9号平台注册 哪种时时彩软件好 时时彩计划软件哪个好
酷彩娱乐平台线上入口 随州时时彩骗局 江西时时彩源码 博悦注册 重庆时时彩跨度
重庆时时彩后二胆码怎么玩 吉林11选5走势图表 编写java21点扑克游戏 北京pk拾玩法 湖北快3网上购买,湖北快3走势图爱彩乐,广西快3遗漏数据
中国体彩七星彩 内蒙古快三走势图 曾道人内幕玄机图 重庆时时彩买的多必输 江西快3能中多少
11选5开奖结果走势图 陕西快乐10分的0.12路在哪下载 十吉林十一选五走势图 河南快三开奖结果预测 时时彩人工计划
北京赛车pk10官网 五分彩官网 北京pk拾官网开奖结果 甘肃快3手机软件?甘肃快三走势?湖北快三开奖结果?甘肃快3统一遗漏数据 上海快3彩票玩法