https://github.com/yidao620c/python3-cookbook
人生苦短,我用Python!
譯者一直堅持使用Python3,因為它代表了Python的未來。雖然向後兼容是它的硬傷,但是這個局面遲早會改變的,而且Python3的未來需要每個人的幫助和支持。目前市面上的教程書籍,網上的手冊大部分基本都是2.x系列的,專門基於3.x系列的書籍少的可憐。
最近看到一本《Python Cookbook》3rd Edition,完全基於Python3,寫的也很不錯。為了Python3的普及,我也不自量力,想做點什麼事情。於是乎,就有了翻譯這本書的衝動了!這不是一項輕鬆的工作,卻是一件值得做的工作:不僅方便了別人,而且對自己翻譯能力也是一種鍛鍊和提升。
譯者會堅持對自己每一句的翻譯負責,力求高質量。但受能力限制,也難免有疏漏或者表意不當的地方。如果譯文中有什麼錯漏的地方請大家見諒,也歡迎大家隨時指正: yidao620@gmail.com
自從2008年以來,Python3橫空出世並慢慢進化。Python3的流行一直被認為需要很長一段時間。事實上,到我寫這本書的2013年,絕大部分的Python程式設計師仍然在生產環境中使用的是版本2系列,最主要是因為Python3不向後兼容。毫無疑問,對於工作在遺留代碼上的每個程式設計師來講,向後兼容是不得不考慮的問題。但是放眼未來,你就會發現Python3給你帶來不一樣的驚喜。
正如Python3代表未來一樣,新的《Python Cookbook》版本相比較之前的版本有了一個全新的改變。最重要的是,這個意味著本書是一本非常前沿的參考書。書中所有代碼都是在Python3.3版本下面編寫和測試的,並沒有考慮之前老版本的兼容性,也沒有標註舊版本下的解決方案。這樣子可能會有爭議,但是我們最終的目的是寫一本完全基於最新最先進工具和語言的書籍。希望這本書能成為在Python3下編碼和想升級之前遺留代碼的程式設計師的優秀教程。
毫無疑問,編寫一本這樣的書會冒一定的編輯風險。如果在網上搜索Python教程的話,會搜到很多很多。比如ActiveState’s Python recipes或者Stack Overflow,但是絕大部分都已經是過時的了。這些教程除了是基於Python2編寫之外,可能還有很多解決方案在不同的版本之間是不一樣的(比如2.3和2.4版本)。另外,它們還會經常使用一些過時的技術,這些已經內置到Python3.3裡面去了。尋找完全基於Python3的教程真的難上加難啊。
這本書的所有主題都是基於已經存在的代碼和技術,而不是專門去尋找Python3特有的教程。在原有代碼基礎上,我們完全使用最新的Python技術去改造。所以,任何想使用最新技術編寫代碼的程式設計師,都可以將本書當做一本很好的參考書籍。
在討論的主題選擇方面,我們不可能囊括Python領域所有的東西。因此,我們優先選擇了Python語言核心部分,以及一些在開發中常見的問題和任務。另外,這裡討論的很多技術都是Python 3最新才出現的,所以如果工作在Python老版本下,即便是最有經驗的程式設計師可能之前也沒見過這些東西。另外,這些示例程序也會偏向於展示一些有用的編程技術(比如設計模式),而不是僅僅定位在一些具體的問題上。儘管也提及到了有一些第三方包,但是本書主要定位在Python語言核心和標準庫。
這本書的目標讀者是那些想深入理解Python語言機制和最新編程技能的資深程式設計師。很多討論都是標準庫,框架和應用程式使用到的高級技術。本書所有示例均假設讀者已經有了一定的編程背景並且可以很容易的讀懂相關主題(比如基本的計算機科學知識,數據結構知識,算法複雜度,系統編程,並行,C語言編程等)。另外,每個示例都只是一個入門指導,如果讀者想深入研究,需要自己去查閱更多資料。因此,我們假定讀者可以很熟練的使用搜尋引擎以及知道怎樣查詢在線的Python文檔。
這本書不適合Python的初學者。事實上,本書已經假定了讀者已經有了一定的Python基礎,看完過幾本入門書籍。本書也不是那種快速參考手冊(可以很快的查詢某個模塊下的某個函數)。本書旨在聚焦幾個最重要的主題,演示幾種可能的解決方案,作為一個跳板,你可以經此進入一些更高級的主題,這些可以在網上或者參考手冊中找到。
本書幾乎所有原始碼均可以在 http://github.com/dabeaz/python-cookbook 上面找到。作者歡迎各位修正bug,改進代碼和評論。
本書就是幫助你完成你的工作。一般來講,只要在本書上面的實例代碼,你都可以隨時拿過去在你的源碼和文檔中使用。你不需要向我們申請許可,除非你抄襲的太過分了。比如說複製幾個代碼片段去完成一個程序是不需要許可的,販賣或者分發實例代碼的光碟也不需要許可,引用本書和實例代碼去網上回答一個問題也不需要許可。但是,合併大量的代碼帶你的正式產品或文檔中去必須得到我們的許可。
我們不會要求你添加代碼的出處,包括標題,作者,出版社,ISBN。比如:Python Cookbook, 3rd edition, by David Beazley and Brian K. Jones (O』Reilly).Copyright 2013 David Beazley and Brian Jones, 978-1-449-34037-7.但是如果你這麼做了,我們會很感激的。
點擊閱讀原文,查看更多內容