# 練習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 |
現在使用這些表格創建你自己的卡片,再花一個星期慢慢記住它們。記住一點:這本書中沒有失敗,只要每天盡力去學,在盡力的基礎上再多花一點功夫就可以了。
## 常見問題
### Q:我不能只是學習布爾值的概念,而不記憶嗎?
> 你當然可以這么做,但是當你編碼的時候,你就需要不停的查找檢索布爾值的規則。如果你先記住他們,這不僅僅是鍛煉你的記憶能力,也使得這些操作更加自然。在此之后,布爾值的概念對你來說就會很簡單。
- 序言
- 前言
- 簡介
- 0:安裝和準備
- 1:第一個程序
- 2:注釋和“#”井號
- 3:數字和數學計算
- 4:變量和命名
- 5:更多的變量和打印
- 6:字符串和文本
- 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:學會說面向對象
- 42:對象、類、以及從屬關系
- 43:基本的面向對象的分析和設計
- 44:繼承Vs.包含
- 45:你來制作一個游戲
- 46:項目骨架
- 47:自動化測試
- 48:更復雜的用戶輸入
- 49:寫代碼語句
- 50:你的第一個網站
- 51:從瀏覽器獲取輸入
- 52:開始你的web游戲
- 來自老程序員的建議
- 下一步
- 附錄A:命令行教程
- 簡介
- 安裝和準備
- 路徑, 文件夾, 名錄 (pwd)
- 如果你迷路了
- 創建一個路徑 (mkdir)
- 改變當前路徑 (cd)
- 列出當前路徑 (ls)
- 刪除路徑 (rmdir)
- 目錄切換(pushd, popd)
- 生成一個空文件(Touch, New-Item)
- 復制文件 (cp)
- 移動文件 (mv)
- 查看文件 (less, MORE)
- 輸出文件 (cat)
- 刪除文件 (rm)
- 退出命令行 (exit)
- 下一步