# 習題 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 游戲
- 下一步
- 老程序員的建議