
二十二、2019年10月20日 開(kāi)始閱讀《自學(xué)是門(mén)手藝》 第二十二天
第十一章? 第6節(jié)
保存到文件的函數(shù)
1、當(dāng)我們對(duì)Python說(shuō)import……的時(shí)候,它會(huì)去尋找我們所指定的文件。這個(gè)文件的名稱應(yīng)該由import語(yǔ)句后面引用的名稱和“.py”構(gòu)成。Python會(huì)按照以下順序?qū)ふ椅募?/p>
2、試著獨(dú)立閱讀這個(gè)文件里的代碼,看看能否看懂——對(duì)初學(xué)者來(lái)說(shuō),還是挺練腦子的。
在這段代碼中,先通過(guò)一個(gè)規(guī)則生成了一個(gè)密碼表,將密碼表保存在字典d中,再將變量s中保存的“密文”翻譯成了英文。
你還可以試試,看自己能否寫(xiě)成一個(gè)能把一段英文加密編程跟它一樣的“密文”的函數(shù)。
我的思考:也試著閱讀了這個(gè)代碼,不過(guò)確實(shí)是閱讀不懂。目前看這本書(shū)確實(shí)還是會(huì)有些吃力,但是也不用擔(dān)心太多了,就是一步一步順其自然,目前這本書(shū)閱讀到現(xiàn)在因?yàn)橛袝r(shí)候很多東西看不太懂,反而會(huì)閱讀的比較快。后面這本書(shū)是必須重新閱讀的。
二十三、2019年10月21日 開(kāi)始閱讀《自學(xué)是門(mén)手藝》 第二十三天
第十一章? 第7節(jié)
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
1、其實(shí)“算法”沒(méi)有多神秘,就是“解決問(wèn)題的步驟”而已。
再簡(jiǎn)單的事,想要“考慮全面”,好像都不容易。
在Python3中,如果寫(xiě)的事print i而不是print(i),那么犯的是語(yǔ)法錯(cuò)誤。這時(shí),解析器會(huì)直接提醒我們?cè)诘趲仔蟹噶耸裁礃拥恼Z(yǔ)法錯(cuò)誤。當(dāng)程序中存在語(yǔ)法錯(cuò)誤的時(shí)候,程序無(wú)法啟動(dòng)和執(zhí)行。
2、在寫(xiě)程序的過(guò)程中,為別人(和將來(lái)的自己)寫(xiě)注釋、寫(xiě)Docstring,為保障程序的結(jié)果全面正確而寫(xiě)測(cè)試代碼,或者干脆在最初就因?yàn)榭紤]到各種意外而使用試錯(cuò)語(yǔ)句話……明明是“天經(jīng)地義”的事情,很多人卻因?yàn)榕侣闊┒蝗プ觥?/p>
這時(shí)“聰明反被聰明誤”的最好示例長(zhǎng)期堆積的地方。很多人真的因?yàn)樽约汉苈斆鳎庞X(jué)得沒(méi)必要這么麻煩,就像蘇格拉底仗著自己過(guò)目不忘就鄙視所有記筆記的人一樣。但是,隨著時(shí)間的推移和工程代碼量的增大,到最后,“聰明人”會(huì)被自己“坑”了。聰明本身無(wú)法搞定工程,能搞定工程的是智慧。蘇格拉底自己沒(méi)有完成任何工程,是他的學(xué)生柏拉圖不顧他的嘲笑用紙和筆記錄了一切,也正因如此,柏拉圖的學(xué)生亞里士多德才有機(jī)會(huì)受到蘇格拉底的啟發(fā),寫(xiě)出了《前分析篇》(Prior Analytics),提出了對(duì)人類(lèi)影響至今的“三段論”。
千萬(wàn)不要因?yàn)檫@一部分中所舉的例子太簡(jiǎn)單而迷惑??桃膺x擇簡(jiǎn)單的例子,是為了讓你更容易集中精力去理解關(guān)于“自己動(dòng)手寫(xiě)函數(shù)”的方方面面。當(dāng)你真的動(dòng)手去做,哪怕去閱讀真實(shí)的工程代碼時(shí),就會(huì)發(fā)現(xiàn),這一部分內(nèi)容的難度還是很高的——現(xiàn)在的“輕敵”,會(huì)造成以后的“潰敗”。
我的思考:我們算是在某些事情上面有著自己的記錄,不過(guò)我覺(jué)得我們的記錄還是屬于很初級(jí)的記錄,需要不斷進(jìn)化,關(guān)于目前這本書(shū)的閱讀,因?yàn)槲覀冞€沒(méi)認(rèn)真的去嘗試寫(xiě)一下代碼,所以所能理解到的其實(shí)是很有限的,這也是我們閱讀完這本書(shū)之后要思考嘗試的問(wèn)題。