Python Cookbook前言

作者:【美】 David Beazley & Brian K Jones

譯者:陳舸

出版:人民郵電出版社(2015年2月第1版 2015年2月北京第1次印刷)

原版:O’REILLY

一、內(nèi)容提要

本書介紹了 Python應(yīng)用在各個(gè)領(lǐng)域中的一些使用技巧和方法,其主題涵蓋了數(shù)據(jù)結(jié)構(gòu)和算法、字符串和文本、數(shù)字、日期和時(shí)間,迭代器和生成器,文件和1/0,數(shù)據(jù)編碼與處理,函數(shù),類與對象,元編程,模塊和包,網(wǎng)絡(luò)和Web編程,并發(fā),實(shí)用腳本和系統(tǒng)管理,測試、調(diào)試以及異常,C語言擴(kuò)展等。

本書覆蓋了 Python應(yīng)用中的很多常見問題,并提出了通用的解決方案。書中包含了大量實(shí)用的編程技巧和示例代碼,并在Python 3.3環(huán)境下進(jìn)行了測試,可以很方便地應(yīng)用到實(shí)際項(xiàng)目中去。此外,本書還詳細(xì)講解了解決方案是如何工作的,以及為什么能夠 工作。

本書非常適合具有一定編程基礎(chǔ)的Python程序員閱讀參考。

二、O’Reilly Media,Inc.介紹

O’Reilly Media通過圖書、雜志、在線服務(wù)、調(diào)查研究和會(huì)議等方式傳播創(chuàng)新知識。 自1978年開始,O’Reilly—直都是前沿發(fā)展的見證者和推動(dòng)者。超級極客們正在開創(chuàng)著未來,而我們關(guān)注真正重要的技術(shù)趨勢——通過放大那些“細(xì)微的信號”來刺激社會(huì)對新科技的應(yīng)用。作為技術(shù)社區(qū)中活躍的參與者,O’Reilly的發(fā)展充滿了對創(chuàng)新的倡導(dǎo)、創(chuàng)造和發(fā)揚(yáng)光大。

O’Reilly為軟件開發(fā)人員帶來革命性的“動(dòng)物書”;創(chuàng)建第一個(gè)商業(yè)網(wǎng)站(GNN);組織了影響深遠(yuǎn)的開放源代碼峰會(huì),以至于開源軟件運(yùn)動(dòng)以此命名;創(chuàng)立了Make雜志,從而成為DIY革命的主要先鋒;公司一如既往地通過多種形式締結(jié)信息與人的紐帶。 O’Reilly的會(huì)議和峰會(huì)集聚了眾多超級極客和高瞻遠(yuǎn)矚的商業(yè)領(lǐng)袖,共同描繪出開創(chuàng) 新產(chǎn)業(yè)的革命性思想。作為技術(shù)人士獲取信息的選擇,O’Reilly現(xiàn)在還將先鋒專家的知識傳遞給普通的計(jì)算機(jī)用戶。無論是通過書籍出版,在線服務(wù)或者面授課程,每一項(xiàng)O’Reilly的產(chǎn)品都反映了公司不可動(dòng)搖的理念——信息是激發(fā)創(chuàng)新的力量。

三、前言

自2008年以來,我們已經(jīng)目睹了整個(gè)Python世界正緩慢向著Python 3進(jìn)化的事實(shí)。眾所周知,完全接納Python 3要花很長的時(shí)間。事實(shí)上,就在寫作本書時(shí)(2013年),大多數(shù)Python程序員仍然堅(jiān)持在生產(chǎn)環(huán)境中使用Python 2。關(guān)于Python 3不能向后兼容的事實(shí)也已經(jīng)做了許多努力來補(bǔ)救。的確,向后兼容性對于任何已經(jīng)存在的代碼庫來說是個(gè)問題。但是,如果你著眼于未來,你會(huì)發(fā)現(xiàn)Python 3帶來的好處絕非那么簡單。

正因?yàn)镻ython 3是著眼于未來的,本書在之前的版本上做了很大程度的修改。首先也是最重要的一點(diǎn),這是一本積極擁抱Python 3的書。所有的章節(jié)都采用Python 3.3來 編寫并進(jìn)行了驗(yàn)證,沒有考慮老的Python版本或者“老式”的實(shí)現(xiàn)方式。事實(shí)上,許多章節(jié)都只適用于Python 3.3甚至更高的版本。這么做可能會(huì)有風(fēng)險(xiǎn),但是最終的目的是要編寫一本Python 3的秘籍,盡可能基于最先進(jìn)的工具和慣用法。我們希望本書可以指導(dǎo)人們用Python 3編寫新的代碼,或者幫助開發(fā)人員將已有的代碼升級到 Python 3。

無需贅言,以這種風(fēng)格來編寫本書給編輯工作帶來了一定的挑戰(zhàn)。只要在網(wǎng)絡(luò)上搜索一下Python秘籍,立刻就能在ActiveState的Python版塊或者Stack Overflow這樣的站點(diǎn)上找到數(shù)以千計(jì)的使用心得和秘籍。但是,大部分這類資源已經(jīng)沉浸在歷史和過去中了。由于這些心得和秘籍幾乎完全是針對Python 2所寫的,其中常常包含有各種針對Python不同版本(例如2.3版對比2.4版)之間差異的變通方法和技巧。此外,這些網(wǎng)上資源常常使用過時(shí)的技術(shù),而這些技術(shù)現(xiàn)在成了Python 3.3的內(nèi)建功能。想尋找專門針對Python 3的資源會(huì)比較困難。

本書并非搜尋特定于Python 3方面的秘籍將其匯集而成,本書的主題都是在創(chuàng)作中由現(xiàn)有的代碼和技術(shù)而產(chǎn)生出的靈感。我們將這些思想作為跳板,盡可能采用最現(xiàn)代化的Python編程技術(shù)來寫作,因此本書的內(nèi)容完全是原創(chuàng)性的。對于任何希望以現(xiàn)代 化的風(fēng)格來編寫代碼的人,本書都可以作為參考手冊。

在選擇應(yīng)該包含哪些章節(jié)時(shí),我們有一個(gè)共識。那就是根本不可能編寫一本涵蓋了每種Python用途的書。因此,我們在主題上優(yōu)先考慮Python語言核心方面的內(nèi)容,以及能夠廣泛適用于各種應(yīng)用領(lǐng)域的常見任務(wù)。此外,有許多秘籍是用來說明在Python 3中新增的功能,這對許多人來說比較陌生,甚至對于那些使用老版Python經(jīng)驗(yàn)豐富的程序員也是如此。我們也會(huì)優(yōu)先選擇普遍適用的編程技術(shù)(即,編程模式)作為主題,而不會(huì)選擇那些試圖解決一個(gè)非常具體的實(shí)際問題但適用范圍太窄的內(nèi)容。盡管在部分章節(jié)中也提到了特定的第三方軟件包,但本書絕大多數(shù)章節(jié)都只關(guān)注語言核心和標(biāo)準(zhǔn)庫。

四、本書適合誰

本書的目標(biāo)讀者是希望加深對Python語言的理解以及學(xué)習(xí)現(xiàn)代化編程慣用法的有經(jīng)驗(yàn)的程序員。本書許多內(nèi)容把重點(diǎn)放在庫、框架和應(yīng)用中使用的高級技術(shù)上。本書假設(shè)讀者已經(jīng)有了理解本書主題的必要背景知識(例如對計(jì)算機(jī)科學(xué)的一般性知識、數(shù)據(jù) 結(jié)構(gòu)、復(fù)雜度計(jì)算、系統(tǒng)編程、并發(fā)、C語言編程等)。此外,本書中提到的秘籍往往只是一個(gè)框架,意在提供必要的信息讓讀者可以起步,但是需要讀者自己做更多的研究來填補(bǔ)其中的細(xì)節(jié)。因此,我們假設(shè)讀者知道如何使用搜索引擎以及優(yōu)秀的Python 在線文檔。

有一些更加高級的章節(jié)將作為讀者耐心閱讀的獎(jiǎng)勵(lì)。這些章節(jié)對于理解Python底層的工作原理提供了深刻的見解。你將學(xué)到新的技巧和技術(shù),可以將這些知識運(yùn)用到自己的代碼中去。

五、本書不適合誰

這不是一本用來給初學(xué)者首次學(xué)習(xí)Python編程而使用的書。事實(shí)上,本書已經(jīng)假設(shè)讀者通過Python教程或者人門書籍了解了基本知識。本書同樣不能用來作為快速參考手冊(即,快速查詢特定模塊中的某個(gè)函數(shù))。相反,本書的目標(biāo)是把重點(diǎn)放在特定的編程主題上,展示可能的解決方案并以此作為跳板引導(dǎo)讀者學(xué)習(xí)更加高級的內(nèi)容。這些內(nèi)容你可能會(huì)在網(wǎng)上或者參考書中遇到過。

六、在線代碼示例

本書中幾乎所有的代碼示例都可以在http://github.com/dabeaz/python-cookbook上找到。 作者歡迎讀者針對代碼示例提供bug修正、改進(jìn)以及評論。

七、使用代碼示例

本書的目的是為了幫助讀者完成工作。一般而言,你可以在你的程序和文檔中使用本書中的代碼,而且也沒有必要取得我們的許可。但是,如果你要復(fù)制的是核心代碼,則需要和我們打個(gè)招呼。例如,你可以在無需獲取我們許可的情況下,在程序中使用本書中的多個(gè)代碼塊。但是,銷售或分發(fā)O’ Reilly圖書中的代碼光盤則需要取得我們的許可。通過引用本書中的示例代碼來回答問題時(shí),不需要事先獲得我們的許可。但是,如果你的產(chǎn)品文檔中融合了本書中的大量示例代碼,則需要取得我們的許可。

在引用本書中的代碼示例時(shí),如果能列出本書的屬性信息是最好不過。一個(gè)屬性信息通常包括書名、作者、出版社和ISBN。例如:Python Cookbook, 3rd edtion, by David Beazley and Brain K.Jones(O’Reilly)。Copyright 2013 David Beazley and Brain Jones, 978-1-449-34037-70

在使用書中的代碼時(shí),如果不確定是否屬于正常使用,或是否超出了我們的許可,請通過 permissions@oreilly.com 與我們聯(lián)系。

八、聯(lián)系方式

如果你想就本書發(fā)表評論或有任何疑問,敬請聯(lián)系出版社。

美國:

O’Reilly Media Inc.

1005 Gravenstein Highway North Sebastopol, CA 95472

中國:

北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)

奧萊利技術(shù)咨詢(北京)有限公司

我們還為本書建立了一個(gè)網(wǎng)頁,其中包含了勘誤表、示例和其他額外的信息。你可以通過鏈接 http://oreil.ly/python_cookbook_3e來訪問頁面。

關(guān)于本書的技術(shù)性問題或建議,請發(fā)郵件到:

bookquestions@oreilly.com

歡迎登錄我們的網(wǎng)站(http://www.oreilly.com),查看更多我們的書籍、課程、會(huì)議和最新動(dòng)態(tài)等信息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容