# 习题 27: 记住逻辑关系
到此为止你已经学会了读写文件,命令行处理,以及很多 Python 数学运算功能。今天,你将要开始学习逻辑了。你要学习的不是研究院里的高深逻辑理论,只是程序员每天都用到的让程序跑起来的基础逻辑知识。
学习逻辑之前你需要先记住一些东西。这个练习我要求你一个星期完成,不要擅自修改日程,就算你烦得不得了,也要坚持下去。这个练习会让你背下来一系列的逻辑表格,这会让你更容易地完成后面的习题。
需要事先警告你的是:这件事情一开始一点乐趣都没有,你会一开始就觉得它很无聊乏味,但它的目的是教你程序员必须的一个重要技能——一些重要的概念是必须记住的,一旦你明白了这些概念,你会获得相当的成就感,但是一开始你会觉得它们很难掌握,就跟和乌贼摔跤一样,而等到某一天,你会刷的一下豁然开朗。你会从这些基础的记忆学习中得到丰厚的回报。
这里告诉你一个记住某样东西,而不让自己抓狂的方法:在一整天里,每次记忆一小部分,把你最需要加强的部分标记起来。不要想着在两小时内连续不停地背诵,这不会有什么好的结果。不管你花多长时间,你的大脑也只会留住你在前 15 或者 30 分钟内看过的东西。
取而代之,你需要做的是创建一些索引卡片,卡片有两列内容,正面写下逻辑关系,反面写下答案。你需要做到的结果是:拿出一张卡片来,看到正面的表达式,例如 “True or False”,你可以立即说出背面的结果是 “True”!坚持练习,直到你能做到这一点为止。
一旦你能做到这一点了,接下来你需要每天晚上自己在笔记本上写一份真值表出来。不要只是抄写它们,试着默写真值表,如果发现哪里没记住的话,就飞快地撇一眼这里的答案。这样将训练你的大脑让它记住整个真值表。
不要在这上面花超过一周的时间,因为你在后面的应用过程中还会继续学习它们。
### 逻辑术语
在 python 中我们会用到下面的术语(字符或者词汇)来定义事物的真(True)或者假(False)。计算机的逻辑就是在程序的某个位置检查这些字符或者变量组合在一起表达的结果是真是假。
- and 与
- or 或
- not 非
- != (not equal) 不等于
- == (equal) 等于
- >= (greater-than-equal) 大于等于
- <= (less-than-equal) 小于等于
- True 真
- False 假
其实你已经见过这些字符了,但这些词汇你可能还没见过。这些词汇(and, or, not)和你期望的效果其实是一样的,跟英语里的意思一模一样。
### 真值表
我们将使用这些字符来创建你需要记住的真值表。
| NOT | True? |
|-----|-----|
| not False | True |
| not True | False |
| OR | True? |
|-----|-----|
| True or False | True |
| True or True | True |
| False or True | True |
| False or False | False |
| AND | True? |
|-----|-----|
| True and False | False |
| True and True | True |
| False and True | False |
| False and False | False |
| NOT OR | True? |
|-----|-----|
| not (True or False) | False |
| not (True or True) | False |
| not (False or True) | False |
| not (False or False) | True |
| NOT AND | True? |
|-----|-----|
| not (True and False) | True |
| not (True and True) | False |
| not (False and True) | True |
| not (False and False) | True |
| != | True? |
|-----|-----|
| 1 != 0 | True |
| 1 != 1 | False |
| 0 != 1 | True |
| 0 != 0 | False |
| == | True? |
|-----|-----|
| 1 == 0 | False |
| 1 == 1 | True |
| 0 == 1 | False |
| 0 == 0 | True |
现在使用这些表格创建你自己的卡片,再花一个星期慢慢记住它们。记住一点,这本书不会要求你成功或者失败,只要每天尽力去学,在尽力的基础上多花一点功夫就可以了。
- 译者前言
- 前言:笨办法更简单
- 习题 0: 准备工作
- 习题 1: 第一个程序
- 习题 2: 注释和井号
- 习题 3: 数字和数学计算
- 习题 4: 变量(variable)和命名
- 习题 5: 更多的变量和打印
- 习题 6: 字符串(string)和文本
- 习题 7: 更多打印
- 习题 8: 打印,打印
- 习题 9: 打印,打印,打印
- 习题 10: 那是什么?
- 习题 11: 提问
- 习题 12: 提示别人
- 习题 13: 参数、解包、变量
- 习题 14: 提示和传递
- 习题 15: 读取文件
- 习题 16: 读写文件
- 习题 17: 更多文件操作
- 习题 18: 命名、变量、代码、函数
- 习题 19: 函数和变量
- 习题 20: 函数和文件
- 习题 21: 函数可以返回东西
- 习题 22: 到现在你学到了哪些东西?
- 习题 23: 读代码
- 习题 24: 更多练习
- 习题 25: 更多更多的练习
- 习题 26: 恭喜你,现在可以考试了!
- 习题 27: 记住逻辑关系
- 习题 28: 布尔表达式练习
- 习题 29: 如果(if)
- 习题 30: Else 和 If
- 习题 31: 作出决定
- 习题 32: 循环和列表
- 习题 33: While 循环
- 习题 34: 访问列表的元素
- 习题 35: 分支和函数
- 习题 36: 设计和调试
- 习题 37: 复习各种符号
- 习题 38: 阅读代码
- 习题 39: 列表的操作
- 习题 40: 字典, 可爱的字典
- 习题 41: 来自 Percal 25 号行星的哥顿人(Gothons)
- 习题 42: 物以类聚
- 习题 43: 你来制作一个游戏
- 习题 44: 给你的游戏打分
- 习题 45: 对象、类、以及从属关系
- 习题 46: 一个项目骨架
- 习题 47: 自动化测试
- 习题 48: 更复杂的用户输入
- 习题 49: 创建句子
- 习题 50: 你的第一个网站
- 习题 51: 从浏览器中获取输入
- 习题 52: 创建你的 web 游戏
- 下一步
- 老程序员的建议