原書出版公司: O'Reilly inc.
翻譯出版公司:中國電力出版社
作者:Paul Barry
譯者:林琪、郭靜等
網站:http://oreilly.com.cn/(出版社)
http://headfirstlabs.com/(本書)
重要提示:
1 將重要的編程概念直接送入你的大腦。
2 用列表、集合和字典對數據建模。
3 將數據保存在pickle中。
4 連接JSON,Adroid和App Engine。
5 把你的定制移植到Web上。
6 在PyPI上與全世界共享你的代碼。
一、這本書為何與眾不同?
我們覺得你的時間相當寶貴,不應當過多地花費在與新概念的糾纏之中。通過應用認知科學和學習理論的最新研究成果,《Head First Python(中文版)可以讓你投人一個需要多感官參與的學習體驗,這本書采用豐富直觀的形式使你的大腦真正開動起來,而不是長篇累牘地說教,讓你昏昏欲睡。
二、您將從本書學會什么?
你想過可以通過一本書就學會Python嗎?《Head First Python (中文版))》 超越枯燥的語法和用法手冊,通過一種獨特的方法教你學習這種語言。你會迅速掌握Python的基礎知識,然后轉向待久存儲、異常處理、Web開發、SQLite、數據加工和Google App Engine。你還將學習如何為Android編寫移動應用,這都要歸功于Python為你賦予的強大能力。本書會提供充分并 1完備的學習體驗,幫助你成為一名真正的Python程序員。
三、本書作者
Paul Barry最近發現他的編程生涯已近四分之一個世紀,這個事實著實讓人有些震驚,在此期間,Paul使用過多種不同的編程語言編寫程序,他在兩個大洲的兩個國家生活并工作過,并且娶妻生子,如今已經有3個孩子(當然……實際上孩子們都是他妻子在悉心照顧,不過Paul確實在他們身邊),另外他還攻讀了計算機的學士和碩士學位,編寫或合作編寫了另外3本書,還為《Linux Journal》(他是這家雜志的特約編輯)撰寫了大量技術文章。
Paul從第-眼看到《Head First HTML with CSS & XHTML》就愛不釋手,當時就意識到“Head First”方法必將成為教授編程的一種絕妙方法。那時他欣喜萬分,同樣興奮的還有David Griffiths,他們共同完成了《Head First Programming))來證明當初的預感并非妄想。
Paul平日的工作是愛爾蘭卡羅理工學院的一名講師。作為計算與網絡系的老師,Paul每天都在研究、學以及向學生們傳授編程技術,其中也包括Python。
最近Paul拿到了 “課程與教學”研究生畢業證書,終于放心地發現他所做的大多數工作確實符合當今的第三級最佳實踐。
四、如何使用這本書?
誰適合看這本書?
如果對下面的所有問題都能肯定地回答“是”:
1 你是不是已經知道如何用另外一種編程語言編程?
2 你是不是希望掌握Python編程的訣竅,想把它補充到你的工具集中,并用它完成一些新的創舉?
3 你是不是更愿意親自動手,在實踐中應用所學,而不只是聽別人長篇大論地說教?
那么,這正是你要的書。
誰可能不適合看這本書?
如果滿足下面任何一種情況:
1 你是不是已經了解Python編程中需要知道的絕大多數內容?
2 你是不是正在找一本Python參考書,希望它能極其詳盡地涵蓋所有細節?
3 你是不是寧愿腳趾甲被15只尖叫的猴子拔掉也不愿意學新東西?是不是認為Python書就應該無所不包,即使這會讓讀者厭煩不已,也覺得這樣反而更好?
那么,這本書并不適合你。
我們知道你在想什么:
“這算是一本正式的Python書嗎?”
“這些圖用來做什么?”
“我真的能這樣學嗎?”
我們也知道你的大腦正在想什么:
你的大腦總是渴求一些新奇的東西。它一直在搜尋、審視、期待著不尋常的事情發生。大腦的構造就是如此,正是這一點才讓我們不至于墨守成規,能夠與時俱進。
我們每天都會遇到許多按部就班的事情,這些事情都很普通,對于這樣一些例行的事情或者平常的東西,你的大腦又是怎么處理的呢?它的做法很簡單,就是不讓這些平常的東西妨礙大腦真正的工作。那么什么是大腦真正的工作呢?這就是記住那些確實重要的事情。它不會費心去記乏味的東西。就好像大腦里有一個篩子,這個篩子會篩掉“顯然不重要”的東西,如果遇到的事情枯燥乏味,這些東西就無法通過這個篩子。
那么你的大腦怎么知道到底哪些東西重要呢?打個比方,假如你某一天外出旅行,突然一只大老虎跳到你面前,此時此刻,你的大腦會做何反應?
神經元會“點火”,情緒爆發,釋放出一些化學物質。
好了,這樣你的大腦就會知道……
這肯定很重要!可不能忘記了!
不過,假如你正待在家里或者坐在圖書館里,這里很安全、很舒適,肯定沒有老虎。你正在刻苦學習,準備應付考試。也可能想學一些比較難的技術,你的老板認為掌握這種技術需要一周時間,最多不超過十天。
這就存在一個問題。你的大腦很想給你幫忙。它會努力地把這些顯然不太重要的內容趕走,保證這些東西不去侵占本不算充足的腦力資源。這些資源最好還是用來記住那些確實重要的事情,比如大老虎,遭遇火災險情等。再比如,你的大腦會讓你記住,絕對不 能把“聚會”時狂歡的照片放在你的Facebook網頁上。沒有一種簡單的辦法來告訴大腦:“嘿,大腦,真是謝謝你了,不過不管這本書多沒意思,也不管現在我對它多么無動于衷,但我確實希望你能把這些東西記下來。”
我們認為“Head First”讀者就是要學習的人
那么,怎么學習呢?首先必須獲得知識,然后做主自己確實不會忘記。這可不是填鴨式的硬塞。根據認識科學、神經生物學和教育心理學的最新研究,學習的途徑相當豐富,絕非只是通過書本上的文字。我們很清楚怎么讓你的大腦興奮起來。
下面是一些Head First學習原則:
1 看得到
與單純的文字相比,圖片更能讓人記得住,通過圖片,學習效率會更高(對于記憶和傳遞型的學習,甚至能有多達89%的效率提升)。而且圖片更能讓人看懂。以往總是把圖片話一頁的最下面,甚至話在另外一頁上,與此不同,把文字話在寫之相關的圖片內部,或者在圖片周圍寫上相關文字,學習者的能力就能得到多至兩倍的提高,從而能更好地解決有關問題。
2 采取一種針對俱的交談式風格
最新的研究表明,如果學習過程中采用一種第一人稱的交談方式直接向讀者講述有關內容,而不是用一種干巴巴的語調介紹,學生在學習之后的考試成績會提高40%。正確的做法是講故事,而不是做報告。要用通俗的語言。另外不要太嚴肅。如果你面對這樣兩個人,一個是你在餐會上結識的很有意思的朋友,另一個人學究氣十足,喋喋不休地對你說說教,在這兩個人中,你會更注意哪一個呢?
3 讓學習的人想得更深
換句話說,除非你很積極地讓神經元活動起來,否則你的頭腦里什么也不會發生。必須引起讀者的好奇,促進、要求并鼓勵讀者去解決問題、得出結論、產生新的知識。為些,需要發出挑戰,留下練習題和拓寬思路的問題,并要求讀者完成一些實踐活動,讓左右腦都開動起來,而且要利用多種思維。
4 引起讀者的注意,而且要讓他一直保持注意
我們可能都有過這樣的體驗,“我真的想把這個學會,不過看過一頁后實在是讓我昏昏欲睡。”你的大腦注意的是那些不一般、有意思、有些奇怪、搶眼的、意料之外的東西。學習一項有難度的新技術并不一定枯燥。如果學習過程不乏味,你的大腦很快就能學會。
5 影響讀者的情緒
現在我們知道了,記憶能力很大程度上取決于所記的內容對我們的情緒有怎樣的影響。如果是你關心的內容,就肯定記得住。如果能讓你感受到了什么,這些東西就會留在你的腦海中。不過,我們所說的可不是什么關于男孩與狗的傷心故事。這里所說的情緒是驚訝、好奇、覺得有趣、想知道“什么……”還有就是有一種自豪感,如果你解決了一個難題,學會了所有人都覺得很難的東西,或者發現你了解的一些知識竟然是那些自以為無所不能的傲慢家伙所不知道的,此時就會有一種自豪感油然而生。
五、元認知:有關思考的思考
如果你真的想學,而且想學得更快、更深,就應該注意你怎樣才會專注起來,考慮自己是怎樣思考的,并了解你的學方法。
我們中間大多數人長這么大可能都沒有上過有關元認知或學習理論的課程。我們想學習,但是很少有人教我們怎么來學習。
不過,這里可以做一個假設,如果你手上有這本書,你想學習如何設計用戶友好的網站,而且可能不想花太多時間。如果你想把這本書屮讀到 的知識真正用起來,就需要記住你讀到的所有內容。為此,必須理解這 些內容。要想最大限度地利用這本書或其他任何一本書,或者掌握學習 經驗,就要讓你的大腦負起責任,耍求它記住這些內容。
怎么做到呢?技巧就在于要讓你的人腦認力你學習的新東西確實很 寬要,對你的生活有很大影響。就像老虎出現在面前一樣。如若不然,你將陷入曠日持久的拉鋸戰中,雖然你很想id住所學的新內容, 但足你的大腦卻會竭盡全力地把它們拒之門外。
那么究竟怎樣才能讓你的大腦把編程看作是一只饑餓的老虎呢?
這有兩條路,一條比較慢,很乏味。另一條路不僅更快,還更有效。慢方法就是大量地重復。你肯定知道,如果反反復復地看到同一個東西,即便再沒有意思,你也能學會并記住。如果做了足夠的重復,你的大腦就會說,“盡管看上去這對他來說好像不重要,不過,既然他這樣一而再、再而三地看同一個東西,所以我覺得這應該是重要的。”
更快的方法是盡一切可能讓大腦活動起來,特別是開動大腦來完成不同類型的活動。如何做到這一點呢?上一頁列出的學習原則正是一些主要的做法,而且經證實,它們確實有助于讓你的大腦全力以赴。例如,研究表明,把文字放在所描述圖片的中間(而不是放在這一頁的別處,比如作為標題,或者放在正文中),這樣會讓你的大腦更多地考慮這些文字與圖片之間有什么關系,而這就會讓更多的神經元點火。讓更多的神經元點火=你的大腦更有可能認為這些內容值得關注,而且很可能需要記下來。
交談式風格也很有幫助,當人們意識到自己在與“別人”交談時,往往會更專心,這是因為他們總想跟上談話的思路,并能做出適當的發言。讓人驚奇的是,大腦并不關心“交談”的對象究竟是誰,即使你只是與一本書“交談”,它也不會在乎!另一方面,如果寫 作風格很正統、干巴巴的,你的大腦就會覺得,這就像坐在一群人中被動地聽人作報吿一樣,很沒意思,所以不必在意對方說的是什么,甚至可能打瞌睡。
六、我們是這么做的:
我們用了很多圖,因為你的大腦更能接受看得見的東西,而不是純文字。對你的大腦來說,一幅圖抵千言。如果既有文字又有圖片,我們會把文字放在圖片當中,因為文字處在所描述的圖片中間時,大腦的工作效率更高,倘若把這些描述文字作為標題,或者“湮沒”在別處的大段文字中,就達不到這種效果了。
我們采用了重復手法,會用不同方式,采用不同類型的媒體運用多種思維手段來介紹同一個東西,目的是讓有關內容更有可能儲存在你的大腦中,而且在大腦中多個區域都有容身之地。
我們會用你想不到的方式運用概念和圖片,因為你的大腦喜歡新鮮玩藝。在提供圖和思想時,至少會含著一些情緒因素,因為如果能產生情緒反應,你的大腦就會投入更大的注意。而這會讓你感覺到這些東西更有可能要被記住,其實這種感覺可能只是很幽默,讓人奇怪或者比較感興趣而已.
我們采用了一種針對個人的交談式風格,因為當你的大腦認為你在參與一個會談,而不是被動地聽一場演示匯報時,它就會更加關注,即使你實際上在讀一本書,也就是說在與書“交談”,而不是真正與人交談,但這對你的大腦來說并沒有什么分別。
在這本書里,我們加入了80多個實踐活動,因為與單純的閱讀相比,如果能實際做點什么,你的大腦會更樂于學習,更愿意去記。這些練習都是我們精心設計的,有一定的難度,但是確實能做出來,因為這是大多數人所希望的。
我們采用了多種學習模式,因為盡管你可能想循序漸進地學習,但是其他人可能希望先對整體有一個全面的認識,另外可能還有人只是想看一個例子。不過,不管你想怎么學,要是同樣的內容能以多種方式來表述,這對毎一個人都會有好處。
這里的內容不只是單單涉及左腦,也不只是讓右腦有所動作,我們會讓你的左右腦都開動起來,因為你的大腦參與得越多,你就越有可能學會并記住,而且能更長時間地保持注意力。如果只有一半大腦在工作,通常意味著另一半有機會休息,這樣你就能更有效率地學習更長時間。
我們會講故事,留練習,從多種不同的角度來看同一個問題,這是因為,如果要求大腦做一些評價和判斷,它就能更深入地學習。
我們會給出一些練習,還會問一些問題,這些問題往往沒有直截了當的答案,通過克服這些挑戰,你就能學得更好,因為讓大腦真正做點什么的話,它就更能學會并記住。想想吧,如果只是在體育館里看著別人流汗,這對于保待你自己的體形肯定不會有什么幫助,正所謂臨淵羨魚,不如退而結網。不過另一方面,我們會竭盡所能不讓你鉆牛角尖,把勁用錯了地方,而是能把功夫用在點子上。也就是說,你不會為搞定一個難懂的例子而耽擱,也不會花太多時間去弄明白一段艱澀難懂而且通篇行話的文字,我們的描述也不會太過簡潔而讓人無從下手。
我們用了擬人手法。在故事中,在例子中,還有在圖中,你都會看到人的出現,這是因為你本身是一個人,不錯,這就是原因。如果和人打交道,相對干某件東西而言,你的大腦會更為關注。
七、可以用下面的方法讓你的大腦就范
好了,我們該做的已經做了,剩下的就要看你自己的了。以下提示可以作為一個起點:聽一聽你的大腦是怎么說的,弄清楚對你 來說哪些做法可行,哪些做法不能奏效。要嘗試新鮮事物。
1 慢一點。你理解的越多,需要記的就越少。
不要光是看看就行了。停下來,好好想一想。書中提出問題的時候,你不要直接去翻答案。可以假想真的有人在問你這個問題。你讓大腦想得越深入,就越有可能學會并記住它。
2 做練習,自己記筆記。
我們留了練習,但是如果這些練習的解答也由我們一手包辦,那和有人替你參加考試有什么分別?不要只是坐在那里看著練習發呆。拿出筆來,寫一寫畫一畫。大量研究都證實,學習過程中如果能實際動動手,這將改善你的學習。
3 閱讀“沒有傻問題”。
顧名思義。這些問題不是可有可無的旁注,它們絕對是核心內容的一部分!千萬不要跳過去不看。
4 上床睡覺之前不要再看別的書,至少不要看其他有難度的東西。
學習中有一部分是在你合上書之后完成的(特別是,要把學到的知識長久地記住,這往往無法在看書的過程中做到)。你的大腦也需要有自己的時間,這樣才能再做一些處理。如果在這段處理時間內你又往大腦里灌輸了新的知識,那么你剛才學的一些東西就會丟掉。
5 講出來,而且要大聲講出來。
說話可以刺激大腦的另一部分。如果你想看懂什么,或者想更牢地記住它,就要大聲地說出來。更好的辦法是,大聲地解釋給別人聽。這樣你會學得更快,而且可能會有以前光看不說時不曾有的新發現。
6 要喝水,而且要大量喝水。
能提供充足的液體,你的大腦才能有最佳表現。如果缺水(可能在你感覺到口渴之前就已經缺水了),學習能力就會下降。
7 聽聽你的大腦怎么說。
注意一下你的大腦是不是負荷太重了。如果發現自己開始浮光掠影地翻看,或者剛看的東西就忘記了,這說明你該休息一會了。達到某個臨界點時,如果還是一味地向大腦里塞,這對于加快學習速度根本沒有幫助,甚至還可能影響正常的學習進程。
8 要有點感覺。
你的大腦需要知道這是很重要的東西。要真正融入到書中的故事里。為書里的照片加上你自己的圖題。你可能覺得一個笑話很蹩腳,但這總比根本無動于衷要好。
9 編寫大量軟件!
要學習編程,沒有別的辦法,只能通過編寫大量代碼。這本書正是要這么做,編寫代碼是一種技巧,要想在這方面擅長,只能通過實踐。我們會給你提供大量實踐的機會:毎一章都留有練習,提出問題讓你解決。不要跳過這些練習,很多知識都是在完成這些練習的過程中學到的。我們為毎個練習都提供了答案,如果你實在做不出來 (很容易被一些小問題卡住),看看答案也無妨! 不過在看答案之前,還是要盡力先自己解決問題。而且在讀下一部分之前,一定要確確實實地掌握前面的內容。
八、重要說明
要把這看做是一個學習過程,而不要簡單地把它看成是一本參考書。我們在安排內容的時候有意做了一些刪減,只要是對有關內容的學習有妨礙,我們都毫不留情地把這些部分刪掉。另外,第一次看這本書時,要從第一頁從頭看起,因為書中后面的部分會假定你已經看過而且學會了前面的內容,
1 這本書特別設計為使你能對Python盡快上手。
既然你想學真功夫,這里就會教你真功夫。所以,在這本書中不會看到長篇大論的技術內容,這里不會用干巴巴的表格羅列Python的操作符,也不會給出枯燥的操作符優先級規則。所有這些都沒有,不過我們會精心安排,盡可能涵蓋所有基礎知識,使你能把Python盡快記入大腦并永遠留住。我們只做了一個假設,認為 你已經知道如何用另外某種編程語言編寫程序。
2 這本書面向Python 3。
這本書中使用Python編程語言的版本3,第1章會介紹如何得到和安裝Python 3。當然,我們并不是完全忽略版本2,這一點你在第8章到第11章就會發現。不過請相信,你會慶幸使用Python,因為你根本不會注意到你編程實現的技術是在Python 2上運行。
3 我們會直接讓Python投入工作。
從第1章開始你就會用Python做些有用的工作。這里不會繞彎子,因為我們希望你能立即用Python開展工作。
4 書里的實踐活動不是可有可無的。
這里的練習和實踐活動不是可有可無的裝飾和擺設,它們也是這本書核心內容的一部分。其中有些練習和活動有助于記憶,有些則能夠幫助你理解,還有一些對于如何應用所學的知識很有幫助。千萬不要跳過這些練習不做。
5 我們有意安排了許多重復,這些重復非常重要。
Head First系列圖書有一個與眾不同的地方,這就是,我們希望你確確實實地掌握這些知識,另外希望在學完這本書之后你能記住學過了什么。大多數參考書都不太重視重復和回顧,但是由于這是一本有關學習的書,你會看到一些概念一而再、再而三地出現。
6 代碼例子盡可能短小精悍。
有讀者吿訴我們,如果査了200行代碼才能找到要理解的那兩行代碼,這很讓人郁悶。這本書里大多數例子往往都開門見山,作為上下文的代碼會盡可能的少,這樣你就能一目了然地看到哪些東西是需要你學習的。別指望這些代碼很健壯,甚至別指望它們是完整的。我們特意把這些例子寫得很簡單,以便于你學習,它們的功能 往往不太完備。
我們在網上放了大量代碼示例,你可以根據需要復制和粘貼。可以從以下兩個網址下載:
http://www.headfirstlabs.com/books/hjpython/
http:ffpython.itcarlow.ie
6 “頭腦風暴”練習沒有答案。
有一些頭腦風暴練習根本沒有正確的答案,對于另外一些練習,頭腦風暴實踐活動中有一部分學習過程就是讓你確定你的答案是否正確以及在何種情況下正確。在其中一些頭腦風暴練習中,你會得到一些提示來指出正確的方向。
九 目錄概覽
0? ? ? 引子 xxiii
1 初識Python:人人都愛列表 1
2 共享你的代碼:函數模塊 33
3 文件與異常:處理錯誤 73
4 持久存儲:數據保存到文件 105
5 推導數據:處理數據! 139
6 定制數據對象:打包代碼與數據 173
7 Web開發:集成在一起 213
8 移動應用開發:小設備 255
9 管理你的數據:處理輸入 293
10 擴展你的Web應用:來真格的 351
11 處理復雜性:數據加工 397
i 其他:(我們沒有談到的)十大問題 435
索引? ? 447