到此為止你已經(jīng)學(xué)會(huì)了讀寫文件,命令行處理,以及很多 Python 數(shù)學(xué)運(yùn)算功能。今天,你將要開始學(xué)習(xí)邏輯了。你要學(xué)習(xí)的不是研究院里的高深邏輯理論,只是程序員每天都用到的讓程序跑起來的基礎(chǔ)邏輯知識(shí)。
學(xué)習(xí)邏輯之前你需要先記住一些東西。這個(gè)練習(xí)我要求你一個(gè)星期完成,不要擅自修改日程,就算你煩得不得了,也要堅(jiān)持下去。這個(gè)練習(xí)會(huì)讓你背下來一系列的邏輯表格,這會(huì)讓你更容易地完成后面的習(xí)題。
需要事先警告你的是:這件事情一開始一點(diǎn)樂趣都沒有,你會(huì)一開始就覺得它很無聊乏味,但它的目的是教你程序員必須的一個(gè)重要技能——一些重要的概念是必須記住的,一旦你明白了這些概念,你會(huì)獲得相當(dāng)?shù)某删透校且婚_始你會(huì)覺得它們很難掌握,就跟和烏賊摔跤一樣,而等到某一天,你會(huì)刷的一下豁然開朗。你會(huì)從這些基礎(chǔ)的記憶學(xué)習(xí)中得到豐厚的回報(bào)。
這里告訴你一個(gè)記住某樣?xùn)|西,而不讓自己抓狂的方法:在一整天里,每次記憶一小部分,把你最需要加強(qiáng)的部分標(biāo)記起來。不要想著在兩小時(shí)內(nèi)連續(xù)不停地背誦,這不會(huì)有什么好的結(jié)果。不管你花多長(zhǎng)時(shí)間,你的大腦也只會(huì)留住你在前 15 或者 30 分鐘內(nèi)看過的東西。
取而代之,你需要做的是創(chuàng)建一些索引卡片,卡片有兩列內(nèi)容,正面寫下邏輯關(guān)系,反面寫下答案。你需要做到的結(jié)果是:拿出一張卡片來,看到正面的表達(dá)式,例如 “True or False”,你可以立即說出背面的結(jié)果是 “True”!堅(jiān)持練習(xí),直到你能做到這一點(diǎn)為止。
一旦你能做到這一點(diǎn)了,接下來你需要每天晚上自己在筆記本上寫一份真值表出來。不要只是抄寫它們,試著默寫真值表,如果發(fā)現(xiàn)哪里沒記住的話,就飛快地撇一眼這里的答案。這樣將訓(xùn)練你的大腦讓它記住整個(gè)真值表。
不要在這上面花超過一周的時(shí)間,因?yàn)槟阍诤竺娴膽?yīng)用過程中還會(huì)繼續(xù)學(xué)習(xí)它們。
在 python 中我們會(huì)用到下面的術(shù)語(yǔ)(字符或者詞匯)來定義事物的真(True)或者假(False)。計(jì)算機(jī)的邏輯就是在程序的某個(gè)位置檢查這些字符或者變量組合在一起表達(dá)的結(jié)果是真是假。
其實(shí)你已經(jīng)見過這些字符了,但這些詞匯你可能還沒見過。這些詞匯(and, or, not)和你期望的效果其實(shí)是一樣的,跟英語(yǔ)里的意思一模一樣。
我們將使用這些字符來創(chuàng)建你需要記住的真值表。
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 |
現(xiàn)在使用這些表格創(chuàng)建你自己的卡片,再花一個(gè)星期慢慢記住它們。記住一點(diǎn),這本書不會(huì)要求你成功或者失敗,只要每天盡力去學(xué),在盡力的基礎(chǔ)上多花一點(diǎn)功夫就可以了。