Python創(chuàng)始人親自推薦的入門書《Python基礎(chǔ)教程》第三版,學(xué)不會我退出IT界

2年前開始接觸Python,我在前輩的推薦下買了《Python基礎(chǔ)教程》,兩年內(nèi)我寫了將近8萬行Python代碼,在寫代碼的過程中,還會時不時的回去翻閱這本書,真心覺得這本書寫得不錯,非常適合初學(xué)者,是入門的絕佳好書。
這本書的章節(jié)安排屬于正統(tǒng)的教學(xué)方法,喜歡趣味教學(xué)方法的人可能會不太適應(yīng)這類書。

下面我來介紹下怎么用這本書
第一章 快速上手
很多優(yōu)秀的編程書籍都會在第一章給出這門語言的一個總覽以及常用的特性,可以說平時常用的70%的概念都會在第一章里面做一個簡介。這種做法非常好,讓大家對這門語言有一個快速的認(rèn)識,建立一定的興趣,比如這一章告訴了我,Python可以當(dāng)一個計算器。甚至還可以計算復(fù)數(shù)!
第一章教了我們什么是程序,引入了算法的概念,原來算法一詞就是菜譜或者流程的時髦說法而已。還告訴了我們程序的組成單位,變量、表達式、語句。這些概念是學(xué)習(xí)任何一門編程語言都需要了解的通用的概念,當(dāng)了解了這些概念,就可以觸類旁通,學(xué)習(xí)別的編程語言就簡單多了。還介紹了如何接收輸入,函數(shù),模塊,保存程序,運行程序,注釋。以及最常用的字符串,任何編程語言里面都要和字符串打交道,我們平時寫代碼打交道最多的也是字符串,所以在第一章就基本上做了非常詳細(xì)的介紹。
建議大家學(xué)習(xí)完每一章都要看一下最后的小結(jié),復(fù)習(xí)一下這一章介紹的概念。
第二章 列表與元組
第二章介紹了一個新的概念,數(shù)據(jù)結(jié)構(gòu)。這也是學(xué)習(xí)每個編程語言需要去了解的常用的數(shù)據(jù)結(jié)構(gòu)。一般學(xué)習(xí)一個新的編程語言,在學(xué)習(xí)完基礎(chǔ)語法,變量,表達式,語句,標(biāo)識符,基礎(chǔ)運算符,函數(shù),模塊這些基礎(chǔ)概念之后,就需要學(xué)習(xí)字符串,列表,集合,字典等常用的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),懂了這些數(shù)據(jù)結(jié)構(gòu),再加上輸入輸出,可以說很多程序都難不倒我們了。
這一章介紹的列表與元組,都是容器。各種編程語言中主要的容器都有兩種,序列和映射,差別在于怎么定位容器中的內(nèi)容。
第三章 字符串
這一章更詳細(xì)的介紹了字符串,其實字符串也是一種序列,所以通用操作也可以用。這一章介紹的點在于格式化字符串,也就是如何按照你要的樣子輸出字符串,以及各種字符串的方法。
第四章 字典
這一章介紹另一種重要的容器,字典。它的特點是利用映射來定位容器中包含的內(nèi)容。當(dāng)學(xué)完這一章,常用的數(shù)據(jù)結(jié)構(gòu)就學(xué)的差不多了。但是有了這些數(shù)據(jù)結(jié)構(gòu),但卻沒法用他們,數(shù)據(jù)結(jié)構(gòu)只是讓我們有了數(shù)據(jù),拿到了數(shù)據(jù),但是最終我們還是要對數(shù)據(jù)做些什么,所以作者立馬就安排了下面一章來教我們這么用數(shù)據(jù)。
第五章 條件、循環(huán)及其他語句
一般我們接觸的程序都是對數(shù)據(jù)做一些事情,所以這一章就是教我們?nèi)绾螌?shù)據(jù)做一些事情。這一章先把一些沒地方放的內(nèi)容放在了開頭,然后從第四小節(jié)開始介紹語句。
第六章 抽象
這一章,介紹了一種偷懶的方法論,叫做抽象。大家說,因為想偷懶,才創(chuàng)造出程序員這種職業(yè),其實程序員是想節(jié)省時間,而不是偷懶。
抽象是一個程序設(shè)計中比較專業(yè)的概念,是思維層次上的一個提升。0基礎(chǔ)的話理解這部分概念需要一定的時間,沒關(guān)系,先用著,用著用著就理解了。
現(xiàn)代編程語言的抽象手段很多,而函數(shù)是每一個都有的,也是最基礎(chǔ)的。所以這一章重點介紹了函數(shù)以及參數(shù)。
這一章還介紹了一個概念,叫做函數(shù)式編程,對應(yīng)的概念叫做面向?qū)ο缶幊?。在我?guī)啄甑木幊坦ぷ髦校瘮?shù)式編程無處不在,事實上,能設(shè)計出一個很好用的函數(shù),已經(jīng)是非常厲害的抽象能力了。
這一章有很多例子,建議都照著敲一下代碼,看電子書的千萬不要復(fù)制黏貼,要自己親手一個個字母敲進去。
第七章 類和對象
這一章介紹更高層的抽象,其實對象(類)和函數(shù)是兩種不同的抽象方式。前者用來抽象數(shù)據(jù),并且綁定一些動作。后者用來抽象處理數(shù)據(jù)的工作。前者抽象的是什么,后者抽象的是做什么。
這一章首先介紹了面向?qū)ο笕蟾拍?,封裝、繼承和多態(tài)。這是任何一個面向?qū)ο缶幊陶Z言都有的。
到這一章學(xué)完,基本上我們就可以完成很多基礎(chǔ)的程序設(shè)計和編寫工作了。真的嗎?這么簡單嗎?對的,就是這么簡單。我們只要學(xué)到第七章就行了。我們生活中很多程序都可以寫了。比如我之前寫的一個小爬蟲程序,就只有幾十行代碼,用到的還只是前六章的知識點。
我建議在這一章結(jié)束,可以不用急著往后看,已經(jīng)可以去寫一些程序了。
本書雖然沒有習(xí)題,但是從20章到29章,介紹了10個不同的項目,在現(xiàn)階段,就可以去照著做一下了,遇到還沒有學(xué)的概念,可以跳過。這10個項目,都可以做一個初級版本出來。
老實說,我覺得這本書好就是因為它的章節(jié)安排非常合理,非常適合初學(xué)者循序漸進的一點點掌握Python。
其實第一個項目就很難,我當(dāng)時看完前5章去做了一下,沒做下去,又看完6,7章去做,做的很艱難。很多概念看過和實際動手去做事兩碼事,但是老實說還挺有樂趣,一點點摸索,遇到不懂地就再回去看看相關(guān)的概念,這就是學(xué)以致用。
寫完第一個項目我很有感觸,其實就是那些最基本的概念,就是我之前說的一門編程語言里面最基本的那些概念,算法,語法,表達式,語句,運算符,數(shù)據(jù)結(jié)構(gòu),函數(shù)等等。再照著寫兩個項目,體悟更深了,事情慢慢變得容易了。
第八章 異常
異常是我至今沒有掌握好的一個概念,我不知道啥時候該使用異常,啥時候不該使用異常。平時也只會簡單的try except而已。
第九章 魔法方法、特性和迭代器
比較散亂的一章,但是平時用的非常多,學(xué)會這些,一定要學(xué)會,我們的程序會變得更好用。如果要找工作,那么迭代器和生成器是每一次面試必考的,所以這個概念一定要掌握。就算不為了面試,這兩個方法也很好用。
我第一次用的時候也是覺得可用可不用,結(jié)果用熟了以后就覺得,嗯,真香~~~
第十章 開箱即用
這一章主要介紹模塊,包的概念。Python是一個膠水語言,是一個萬金油語言,我們能想到的事情,Python的世界里面基本上都有現(xiàn)成做好的模塊給我們用。我們所要做的就是去搜索到這個模塊的名字就行了。
有人會疑惑為什么這一章不稍微介紹下pip這個包管理器,因為平時我們就是用它來安裝各種包、模塊的。因為這一章是“開箱即用”,主要介紹標(biāo)準(zhǔn)庫。
這一章很長,內(nèi)容很多,建議把提到的模塊都用一下,了解一下,因為它們的的確確是用的最多的。
第十一章 文件
我們平時跟文件打交道實在太多了,所以這一章是重點,都要掌握。
第十二章 GUI
我覺得這一章不太好,像是湊數(shù)的,內(nèi)容太簡單。GUI指的是圖形界面編程。如果沒有這種需求,可以不用學(xué)。如果想要用Python做GUI,可能其他的庫,比如PyQt,wxPython等是更好的選擇。
第十三章 數(shù)據(jù)庫支持
這一章介紹的是SQLite,我用這個數(shù)據(jù)庫做了一個家庭計賬簿,用了2年多了,挺好用:)學(xué)會了這一章,以后用別的數(shù)據(jù)庫模塊會發(fā)現(xiàn),接口都一樣,這就是抽象。

第十四章 網(wǎng)絡(luò)編程
我從未寫過網(wǎng)絡(luò)編程,所以也沒有看過這一章,所以無法給出意見。
第十五章 Python和Web
這一章介紹的是抓取網(wǎng)頁和做Http服務(wù)器,以及介紹了Web框架。
我是看了爬蟲的教程再回去看這一章,發(fā)現(xiàn)書里面寫的東西用處不大了。只有一個BeautifulSoup還有點用。web框架Flask用的人不少,不過我用的是Django,所以久沒有仔細(xì)看。
第十六章 測試基礎(chǔ)
這一章非常實用,建議一定要看,尤其是要應(yīng)聘測試工程師有要求懂Python的,那么這一章的內(nèi)容要掌握。
這一章提到的理念“先測試后編碼”,測試驅(qū)動的編程,先編寫需求說明,重構(gòu)都很重要,平時工作使用Python的時候可以有條件的選擇一些來執(zhí)行。介紹了兩個測試工具很實用,平時都會用。
第十七章 擴展Python
了解各概念即可,一開始估計用不到。我是兩年后用到別人給的C接口時才去學(xué)SWIG的。
第十八章 程序打包
如果我們很滿意自己寫的程序,想讓更多人使用,那么本章就介紹了標(biāo)準(zhǔn)的做法。我沒有分享過代碼,所以自然也沒有看過這章,無法給出評價。
第十九章 趣味編程
這一章的理念很棒,我自己使用的XP開發(fā)方法,當(dāng)然我跟作者一樣,比較懶,大多數(shù)規(guī)范我都沒有遵守。
這一章的原型設(shè)計是設(shè)計程序的最佳實踐之一,配置也是很重要,稍微大一點的程序,都要用到配置才有一定的靈活性。我的配置文件一般是json,所以這就又用到了第10章里面介紹的json庫。
最后作者列得參考書目,如果通過學(xué)習(xí)Python對編程有了更多的興趣,就可以看一下,就像作者所說的:“就算不詳細(xì)閱讀這些著作(我反正沒有詳細(xì)閱讀),隨便翻翻也將讓你深受啟迪。”
第二十章 -- 第二十九章
十個不大不小的項目,建議都做一下,學(xué)完前7章就可以開始做,學(xué)習(xí)了之后的章節(jié)后不斷完善,其實這個過程就是XP(極限編程)。
能看到這里的小伙伴們,我相信你們一定是對學(xué)習(xí)Python感興趣的,通過這本書學(xué)習(xí)吧,不會讓你失望的。
完整版的學(xué)習(xí)教程資料已經(jīng)整理打包完畢了,需要的可以直接帶走了?。?!
獲取方式:
一鍵三連+關(guān)注
厚臺主動留下痕跡:“學(xué)習(xí)”