簡明Python教程·目錄&部分介紹&獻(xiàn)詞&前言&譯者前言


簡明 Python 教程
《A Byte of Python》是一本由 Swaroop C H 編寫,旨在于介紹如何使用 Python 語言進(jìn)行編 程的自由圖書。它以教材與指南的形式為入門者介紹 Python 語言。如果你對電腦知識的了解 僅限于如何保存文本文件的話,那這本書就是為你準(zhǔn)備的。
2005 年,沈潔元將本書的 1.20 版引進(jìn)中國,并完成了全本翻譯,將本書的譯名定為《簡明 Python 教程》。2017年,漠倫基于原書 4.0 版重新翻譯,制作了本版全新譯本,并沿用同樣 的譯名。
本版譯本定義為 4.06c 版。最后修訂于 2017 年 7 月 28 日。
有關(guān) Python 3
本書將指導(dǎo)你如何使用 Python 3。同時,本書也會以指南的形式告訴你應(yīng)如何適應(yīng)雖老些但 使用更加普遍的 Python 2。
學(xué)術(shù)課程?
本書曾被或正在被各類教育機(jī)構(gòu)當(dāng)作他們的教材:?
阿姆斯特丹的自由大學(xué) 的 編程語言原理(Principles of Programming Languages) 課 程。
加利福尼亞大學(xué)戴維斯分校 的 計算機(jī)運(yùn)作的基本概念(Basic Concepts of Computing) 課程。
哈佛大學(xué) 的 Python 編程(Programming With Python) 課程。?
利茲大學(xué) 的 編程介紹(Introduction to Programming) 課程。?
波士頓大學(xué) 的 應(yīng)用程序編程介紹(Introduction to Application Programming) 課程。?
俄克拉荷馬大學(xué) 的 氣象學(xué)信息科技技能(Information Technology Skills for Meteorology) 課程。
密歇根州立大學(xué) 的 地理處理(Geoprocessing) 課程。?
愛丁堡大學(xué) 的 多代理語義 Web 系統(tǒng)(Multi Agent Semantic Web Systems) 課程。?
MIT 開放課程項目(MIT OpenCourseWare) 的 計算機(jī)科學(xué)與編程介紹(Introduction to Computer Science and Programming) 課程。
斯洛文尼亞,盧布爾雅那大學(xué)的社會科學(xué)學(xué)院基礎(chǔ)編程(Basic Programming)課程 -- Ale? ?iberna 說:“我(以及我的前任)一直使用你的這本書作為課程的主要教材?!?
克羅地亞,扎達(dá)爾大學(xué)信息科學(xué)系的計算機(jī)編程介紹(Introduction to programming)課 程 -- Kre?imir Zauder 說: “我想告訴你,《簡明 Python 教程》是我課上的強(qiáng)制性讀物?!?
還有,本書已被?NASA?采用!NASA?在它們的?噴氣推進(jìn)實驗室(Jet Propulsion Laboratory)?及它們的深空網(wǎng)絡(luò)計劃中采用了本書。
許可證
本書是根據(jù) Swaroop C H 所創(chuàng)作的《Byte of Python》翻譯而來的譯本。《Byte of Python》 采用 知識共享 署名-相同方式共享 國際 4.0 協(xié)議(CC BY-SA Intl. 4.0) 進(jìn)行授權(quán),你可以在 原書的官方網(wǎng)站(https://python.swaroopch.com/)上獲取本書的全部原始內(nèi)容。
本譯本依據(jù)相關(guān)協(xié)議進(jìn)行翻譯與再分發(fā)。
對于本譯本的文本內(nèi)容,采用 知識共享 署名-相同方式共享 國際 4.0 協(xié)議(CC BY-SA Intl. 4.0) 進(jìn)行授權(quán)。

獻(xiàn)詞
本書獻(xiàn)給 Kalyan Varma 以及其他許多來自 PESIT 的先驅(qū),是他們向我們介紹了來自 GNU/Linux 世界的開放源代碼。
謹(jǐn)以此書紀(jì)念 Atul Chitnis,一位友人以及非常懷念他的人的引導(dǎo)者。
本書獻(xiàn)給 創(chuàng)造互聯(lián)網(wǎng)的開拓者們。本書初撰于 2003 年。得益于這些先驅(qū)們對互聯(lián)網(wǎng)上這一 分享知識的土壤與環(huán)境的設(shè)想,本書得以流行至今,并對他們深表感謝。

前言
Python 可能是極少數(shù)能夠同時兼顧簡單與功能強(qiáng)大的編程語言。無論是對于新手或是行家, 這一點都裨益頗深。更重要的是,采用 Python 編程充滿了樂趣。本書旨在于幫助你學(xué)習(xí)這一 美妙的程序語言,并向你展現(xiàn)如何快速且毫不費(fèi)力地完成諸多事情,實際上也可說是“助你解 決編程問題的抗毒血清”。
本書是為誰而撰
本書將以指南或教程的形式向你介紹 Python 這門編程語言。它以新手為主要目標(biāo)。同時本書 也對有經(jīng)驗的程序員有所幫助。
如果你對電腦的所有了解僅止步于如何保存文本文件的話,那本書的目標(biāo)便是協(xié)助你通過本 書學(xué)習(xí) Python。如果在此之前你已經(jīng)有了編程經(jīng)驗,你同樣可以通過本書來學(xué)習(xí) Python。
如果你已經(jīng)有過編程經(jīng)驗,你或許會對 Python 與其它你所喜愛的編程語言間有何區(qū)別抱有興 趣——而我將會你展現(xiàn)許多這種區(qū)別。順便提醒你一下,Python 將會很快成為你最喜歡的編 程語言!

譯者前言
如果一位新手想要學(xué)習(xí)編程,那么 Python 一定能排在推薦清單的最前列。而如果要想學(xué)習(xí) Python,Swaroop C H 所撰寫的《A Byte of Python》一定也能排在推薦教材的靠前位置。作 為一本旨在簡明、易懂地傳授 Python 知識的教材,這本采用知識共享協(xié)議免費(fèi)分發(fā)的圖書一 經(jīng)刊行就流行于世界各地,不僅被翻譯成各種語言,還被許多大學(xué)或教育機(jī)構(gòu)采用用作正式 的教學(xué)教材。它在中國還有一個流傳已久的名字——《簡明 Python 教程》。
2005 年,沈潔元將《Byte of Python》的 1.20 版本引進(jìn)中國,并完成了全本翻譯,將其譯名 定為《簡明 Python 教程》。十余年來,這一譯本流行于各大網(wǎng)站,想必自是為無數(shù)新晉的 Python 學(xué)習(xí)者以及業(yè)已有編程經(jīng)驗的程序員們提供了莫大幫助。
如今這份教程的中文譯本的年齡已逾 11 年,原書《Byte of Python》已有諸多改動,而 Python 亦已歷經(jīng)多個重大更新。最簡單的情況便是,在 Python 2 更新至 Python 3 后,譯本 中開頭的第一個程序 print 'hello world' 這一寫法已經(jīng)不再適用于 Python 3??梢粤舷耄?這個問題已對不少學(xué)習(xí)者成了他們在學(xué)習(xí) Python 時面對的第一個困擾。
這也是促使我這個興趣使然的編程新手開始試圖重新翻譯這本教程的原因。計算機(jī)技術(shù)、程 序與應(yīng)用開發(fā)技術(shù)的發(fā)展可能比其他任何一項技術(shù)更能貼合日新月異這樣的說法,而有關(guān) Python 由 2 至 3 的改動是否得當(dāng)、應(yīng)當(dāng)使用哪一個版本這些議題到今天依然爭執(zhí)不休。即便 如此,一本簡明教程或許仍有其緊跟時代的必要,在所有資料都準(zhǔn)備就緒后,才可對后來的 新入門者提供更全面的幫助,產(chǎn)生更為有利的影響。
于是,自一個興起而至的想法啟程,今天我心懷忐忑地帶來這本從頭重新翻譯的《簡明 Python 教程》的新譯本。
本譯本根據(jù)《Byte of Python》原書在 GitHub 上提供的原文件進(jìn)行翻譯。根據(jù)原書中提供的 修訂歷史信息,譯本遵循同樣的版本號,定義為 4.0c 版。本次翻譯除了正文內(nèi)容外,還翻譯 了其他介紹章節(jié)、附錄章節(jié)以及其中的讀者來稿與感言。書中所附的 .py 文件及直接寫入正文 中的的源代碼酌情翻譯了注釋部分。但為了保證程序源代碼中的整潔與避免不必要的修改, 程序案例源碼中的英文語句沒有翻譯而保持原樣。
由于沈潔元所發(fā)布的 1.20 版譯本是基于 CC BY-NC-ND 1.0(署名-非商業(yè)使用-禁止演繹,在 譯本發(fā)布時寫作“署名-非派生作品-非商業(yè)用途”)協(xié)議進(jìn)行授權(quán)與分發(fā),因此這一重譯本不能 在沈的譯本上進(jìn)行改動或采納其已有的更有力的表述,而只能將其列為參考。但在此依舊要 向沈潔元的翻譯工作表示感謝,這份開辟性的譯本對本譯本的翻譯提供了諸多參考,在這十 數(shù)年間為無數(shù)學(xué)習(xí)者起到了至關(guān)重要的幫助。新譯本不敢抱持多少野心,只希望能夠繼承先 前譯本所能起到的作用——哪怕只有些許。
另外,作為同一本書不同修訂版的前后譯本,為使閱讀過沈潔元譯本的讀者便于通過本書了 解新增的內(nèi)容,同時也為避免對同一概念的不同表達(dá)可能造成的困擾,對于本譯本與沈潔元 譯本譯法相左的一些術(shù)語或概念,會在注釋中列出了沈潔元譯本采用的譯法,供讀者參考。
有關(guān)現(xiàn)在這本新譯本,翻譯并非一蹴而就,期間磕磕絆絆也是必然。事實上現(xiàn)在這位新譯者 在剛開始翻譯時仍是一名編程門外漢,僅抱著興趣使然的心與一邊翻譯一邊學(xué)習(xí)的淺薄想法 而倉促啟程。只不過在抵達(dá)終點時仍擔(dān)心不已,不知是否已實現(xiàn)出發(fā)時的雄心壯志。因此, 讀者諸君在閱讀本譯本時如果遇到了任何表達(dá)上的疑惑,或是發(fā)現(xiàn)了任何翻譯上的錯誤,還 請務(wù)必與譯者聯(lián)系,指出個中疑惑或疏漏、錯誤,以便更好地改進(jìn)這一譯本,為后來的其他 學(xué)習(xí)者提供更為有用的幫助。
在翻譯過程中,譯者得到了諸如 Nakagawa Kanon,Zxteloiv,Yukko 等其他不能一一列清姓 名的友人幫助,是他們向我解釋概念,提出更精準(zhǔn)的譯法。在面對我這一個新手時常流露出 的無知與莽撞時他們所展現(xiàn)出的包容和耐心予我莫大鼓勵,在此要對他們表示感謝。
有關(guān)對于本書內(nèi)容方面的感想或謝意,你可以將其直接寄給原作者 SwaroopC H(blog@swaroopch.com)。有關(guān)譯本在翻譯方面存在的任何疑惑與問題,你可以通過電子 郵件(i@molun.net)與譯者取得聯(lián)系。而受限于譯者在編程方面的淺薄學(xué)識,對于本書在學(xué) 習(xí)過程中產(chǎn)生的編程方面的疑惑,很可能不能為讀者諸君提供有用的解答,這點還望見諒。
?在此,預(yù)祝你的 Python 學(xué)習(xí)之路能一路暢通無阻,攜堅持與毅力出發(fā),最后滿載而歸。?
漠倫
2017年1月2日
修訂追記
本書在譯成后得到了諸多讀者的指正,以下列出對本譯本的修改提出過建議的讀者,并感謝 他們的意見與建議。所有排名不分先后。
2017 年 1 月 3 日至 1 月 8 日,陸續(xù)進(jìn)行了錯字漏字的訂正。依 anglum 與 slimray 的建議對 《面向?qū)ο缶幊獭芬徽碌牟糠址g作了修改,并修正了錯誤。經(jīng) 行走的魚2001 指正改正了 《函數(shù)》一章的錯誤。經(jīng) lefinite 指正改正了《數(shù)據(jù)結(jié)構(gòu)》一章的錯誤。經(jīng) Zhanyu Wang 指 正改正了《模塊》一章的錯誤。經(jīng) nonozone 與 張小西 指正改正了《基礎(chǔ)》一章的錯誤。在 ivysrono 協(xié)助下改正了《函數(shù)》《模塊》兩章的錯誤?!陨闲抻嗴w現(xiàn)在 4.01c 版中
?2017年 1 月 9 日至 2 月 16 日,陸續(xù)進(jìn)行了錯字漏字訂正與部分譯文重寫。依 Haruki Kirigaya、Yuki Kiriyama、Nakagawa Kanon 指正改寫了《面向?qū)ο缶幊獭芬徽碌牟糠肿g文。 經(jīng) Cloud 指正改正了《運(yùn)算符與表達(dá)式》一章的錯誤。經(jīng) yurikaka 指正改正了《前言》《基 礎(chǔ)》《運(yùn)算符與表達(dá)式》幾章的錯誤。經(jīng) aristotll 指正改正了《標(biāo)準(zhǔn)庫》一章的錯誤。經(jīng) Tian Zhao 指正改正了《解決問題》一章的錯誤?!陨闲抻嗴w現(xiàn)在 4.02c 版中。
2017 年 3 月 19 日,進(jìn)行了錯字漏字訂正。依 Tian Zhao 指正,改正了《解決問題》一章的 錯誤。依 yangyangwithgnu 指正修改了《基礎(chǔ)》《函數(shù)》《模塊》《解決問題》《面向?qū)ο?編程》《數(shù)據(jù)結(jié)構(gòu)》《標(biāo)準(zhǔn)庫》《邁出下一步》《FLOSS》章節(jié)的錯誤。追憶、Yang 同樣指 出了前述的部分錯誤?!陨闲抻嗴w現(xiàn)在 4.03c 版中。
2017 年 5 月 1 日,進(jìn)行了錯字漏字訂正與部分譯文重寫。依 Nangcr 建議修改了《控制流》 一章的部分措辭。依鄒鵬、Haruki Kirigaya、Yuki Kiriyama、藍(lán)星アキラ、shuven 指正與建 議改寫了《面向?qū)ο缶幊獭芬徽碌牟糠肿g文與多處翻譯錯誤。——以上修訂體現(xiàn)在 4.04c 版 中。
2017 年 7 月 6 日,進(jìn)行了錯字漏字訂正。在 shuizhongyueming 的幫助下修改了《運(yùn)算符與 表達(dá)式》《安裝》《面向?qū)ο缶幊獭氛鹿?jié)的錯誤。在 Leon0824 的幫助下修改了《基礎(chǔ)》 《函數(shù)》《模塊》幾章的錯誤。依 cobeeee 指正修改了《翻譯》一章的錯誤。依 Alexander Nie 的指正調(diào)整了《函數(shù)》章節(jié)的部分內(nèi)容。依 192****543 指正修改了《第一步》章節(jié)的錯 誤。依 薛景老師 指正改正了《關(guān)于 Python》章節(jié)的錯誤。依 genkagen 指正改正了《異常》 《輸入與輸出》章節(jié)的錯誤。依 nastydt 指正改正了《面向?qū)ο缶幊獭贰哆\(yùn)算符與表達(dá)式》一 章的錯誤。依 wang454 指正改正了某一示例程序的錯誤?!陨闲抻嗴w現(xiàn)在 4.05c 版中。
2017 年 7 月 28 日,進(jìn)行了錯字漏字訂正。依 David Wang 的指正改正了《更多》《邁出下 一步》章節(jié)的錯誤。依 薛景老師 指正改成了《第一步》《基礎(chǔ)》《運(yùn)算符與表達(dá)式》《控制 流》章節(jié)的錯誤。依 Lulu Zeng 指正修改了《面向?qū)ο缶幊獭氛鹿?jié)的錯誤。依 LazyWolf Lin 指正與建議修改了《控制流》《函數(shù)》章節(jié)的錯誤與措辭。依 Kuno Kuno 指正修改了《面向 對象編程》章節(jié)的錯誤。依 Cobeee 指正修改了《本書由來》章節(jié)的錯誤。本次修訂得到了 Haruki Kirigaya 的協(xié)助,他參與修改了部分上述提到的錯誤,并指出了其它錯誤,具體章節(jié) 包括《第一步》《基礎(chǔ)》《運(yùn)算符與表達(dá)式》《控制流》《函數(shù)》《解決問題》《面向?qū)ο?編程》《異?!罚诖松畋砀兄x?!陨闲抻嗴w現(xiàn)在 4.06c 版中。

下一篇專欄
