如果你已經(jīng)完全讀完了這本書并且也實踐著編寫了很多程序,那么你一定已經(jīng)能夠非常熟練自如地使用 Python 了。你可能也已經(jīng)編寫了一些 Python 程序來嘗試練習(xí)各種 Python 技能和特性。如果你還沒有那樣做的話,那么你一定要快點去實踐?,F(xiàn)在的問題是“接下來學(xué)習(xí)什么?”。
我會建議你先解決這樣一個問題:創(chuàng)建你自己的命令行 地址簿 程序。在這個程序中,你可以添加、修改、刪除和搜索你的聯(lián)系人(朋友、家人和同事等等)以及它們的信息(諸如電子郵件地址和/或電話號碼)。這些詳細信息應(yīng)該被保存下來以便以后提取。
思考一下我們到目前為止所學(xué)的各種東西的話,你會覺得這個問題其實相當(dāng)簡單。如果你仍然希望知道該從何處入手的話,那么這里也有一個提示。
提示(其實你不應(yīng)該閱讀這個提示) 創(chuàng)建一個類來表示一個人的信息。使用字典儲存每個人的對象,把他們的名字作為鍵。使用 cPickle 模塊永久地把這些對象儲存在你的硬盤上。使用字典內(nèi)建的方法添加、刪除和修改人員信息。
一旦你完成了這個程序,你就可以說是一個 Python 程序員了。現(xiàn)在,請立即寄一封信給我感謝我為你提供了這本優(yōu)秀的教材吧。是否告知我,如你所愿,但是我確實希望你能夠告訴我。
這里有一些繼續(xù)你的 Python 之路的方法:
使用 Python 的 GUI 庫——你需要使用這些庫來用 Python 語言創(chuàng)建你自己的圖形程序。使用 GUI 庫和它們的 Python 綁定,你可以創(chuàng)建你自己的 IrfanView、Kuickshow 軟件或者任何別的類似的東西。綁定讓你能夠使用 Python 語言編寫程序,而使用的庫本身是用 C、C++或者別的語言編寫的。
有許多可供選擇的使用 Python 的 GUI:
PyQt 這是 Qt 工具包的 Python 綁定。Qt 工具包是構(gòu)建 KDE 的基石。Qt,特別是配合 Qt Designer 和出色的 Qt 文檔之后,它極其易用并且功能非常強大。你可以在 Linux 下免費使用它,但是如果你在 Windows 下使用它需要付費。使用 PyQt,你可以在 Linux/Unix 上開發(fā)免費的(GPL 約定的)軟件,而開發(fā)具產(chǎn)權(quán)的軟件則需要付費。一個很好的 PyQt 資源是《使用 Python 語言的 GUI 編程:Qt 版》請查閱官方主頁以獲取更多詳情。
PyGTK 這是 GTK+工具包的 Python 綁定。GTK+工具包是構(gòu)建 GNOME 的基石。GTK+在使用上有很多怪癖的地方,不過一旦你習(xí)慣了,你可以非??焖俚亻_發(fā) GUI 應(yīng)用程序。Glade 圖形界面設(shè)計器是必不可少的,而文檔還有待改善。GTK+在 Linux 上工作得很好,而它的 Windows 接口還不完整。你可以使用 GTK+開發(fā)免費和具有產(chǎn)權(quán)的軟件。請查閱官方主頁以獲取更多詳情。
wxPython 這是 wxWidgets 工具包的 Python 綁定。wxPython 有與它相關(guān)的學(xué)習(xí)方法。它的可移植性極佳,可以在 Linux、Windows、Mac 甚至嵌入式平臺上運行。有很多 wxPython 的 IDE,其中包括 GUI 設(shè)計器以及如 和 wxGlade 那樣的 GUI 開發(fā)器。你可以使用 wxPython 開發(fā)免費和具有產(chǎn)權(quán)的軟件。請查閱官方主頁以獲取更多詳情。
TkInter 這是現(xiàn)存最老的 GUI 工具包之一。如果你使用過 IDLE,它就是一個 TkInter 程序。在 PythonWare.org 上的 TkInter 文檔是十分透徹的。TkInter 具備可移植性,可以在 Linux/Unix 和 Windows 下工作。重要的是,TkInter 是標準 Python 發(fā)行版的一部分。
不幸的是,并沒有單一的標準 Python GUI 工具。我建議你根據(jù)你的情況在上述工具中選擇一個。首要考慮的因素是你是否愿意為 GUI 工具付費。其次考慮的是你是想讓你的程序運行在 Linux 下、Windows 下還是兩者都要。第三個考慮因素根據(jù)你是 Linux 下的 KDE 用戶還是 GNOME 用戶而定。
未來的章節(jié)
我打算為本書編寫一或兩個關(guān)于 GUI 編程的章節(jié)。我可能會選擇 wxPython 作為工具包。如果你想要表達你對這個主題的意見,請加入 byte-of-python 郵件列表。在這個郵件列表中,讀者會與我討論如何改進本書。
Python 標準庫是一個豐富的庫,在大多數(shù)時候,你可以在這個庫中找到你所需的東西。這被稱為 Python 的“功能齊全”理念。我強烈建議你在開始開發(fā)大型 Python 程序之前瀏覽一下 Python 標準文檔。
Python.org——Python 編程語言的官方主頁。你可以在上面找到 Python 語言和解釋器的最新版本。另外還有各種郵件列表活躍地討論 Python 的各方面內(nèi)容。
comp.lang.python 是討論 Python 語言的世界性新聞組。你可以把你的疑惑和詢問貼在這個新聞組上。可以使用 Google 群在線訪問這個新聞組,或加入作為新聞組鏡像的郵件列表。
《Python 實用大全》是一個極有價值的秘訣和技巧集合,它幫助你解決某些使用 Python 的問題。這是每個 Python 用戶必讀的一本書。
《迷人的 Python》是 David Mertz 編著的一系列優(yōu)秀的 Python 相關(guān)文章。
《深入理解 Python》是給有經(jīng)驗的 Python 程序員的一本很優(yōu)秀的書。如果你已經(jīng)完整地閱讀了本書,那么我強烈建議你接下來閱讀《深入理解 Python》。它覆蓋了包括 XML 處理、單元測試和功能性編程在內(nèi)的廣泛的主題。
Jython 是用 Java 語言實現(xiàn)的 Python 解釋器。這意味著你可以用 Python 語言編寫程序而同時使用 Java 庫!Jython 是一個穩(wěn)定成熟的軟件。如果你也是一個 Java 程序員,我強烈建議你嘗試一下 Jython。
IronPython 是用 C#語言實現(xiàn)的 Python 解釋器,可以運行在.NET、Mono 和 DotGNU 平臺上。這意味著你可以用 Python 語言編寫程序而使用.NET 庫以及其他由這三種平臺提供的庫!IronPython 還只是一個前期 alpha 測試軟件,現(xiàn)在還只適合用來進行試驗。Jim Hugunin,IronPython 的開發(fā)者,已經(jīng)加入了微軟公司,將在將來全力開發(fā)一個完整版本的 IronPython。
Lython 是 Python 語言的 Lisp 前段。它類似于普通的 Lisp 語言,會被直接編譯為 Python 字節(jié)碼,這意味著它能與我們普通的 Python 代碼協(xié)同工作。
現(xiàn)在,我們已經(jīng)來到了本書的末尾,但是就如那句名言,這只是 開始的結(jié)束 !你現(xiàn)在是一個滿懷渴望的 Python 用戶,毫無疑問你準備用 Python 解決許多問題。你可以使你的計算機自動地完成許多先前無法想象的工作或者編寫你自己的游戲,以及更多別的什么東西。所以,請出發(fā)吧!
FLOSS 基于社區(qū)的概念,而它本身基于共享,特別是知識共享的概念。FLOSS 可以免費使用、修改和再發(fā)行。
如果你已經(jīng)讀了本書,那么你一定熟悉 FLOSS,因為你一直在使用 Python!
如果你想要了解更多的 FLOSS,你可以探索下面這個列表中的軟件。我列出了一些最著名的 FLOSS 以及那些可以跨平臺(即在 Linux、Windows 等)工作的 FLOSS。這樣你無需馬上切換到 Linux 就可以嘗試使用這些軟件了, 盡管你最終一定會轉(zhuǎn)到 Linux 上的 。
Linux 這是一個正在慢慢被世界接納的 FLOSS 操作系統(tǒng)!它最初由 Linus Torvalds 在學(xué)生時候開發(fā)?,F(xiàn)在,它已經(jīng)可以與微軟 Windows 相匹敵。最新的 2.6 版本核心,無論從速度、穩(wěn)定性還是擴展性角度來說,都是一個巨大的突破?!?a rel="nofollow" >Linux 核心】
Knoppix 這是一個僅僅在 CD 上運行的 Linux 發(fā)行版!它不需要安裝——你只需要重新啟動你的計算機,把 CD 放入光驅(qū),就可以開始使用一個完全的 Linux 發(fā)行版了!你可以使用所有的隨標準 Linux 發(fā)行版發(fā)行的 FLOSS,如運行 Python 程序、編譯 C 程序、看電影等等。然后再次重啟你的計算機,取出 CD,就可以使用你現(xiàn)有的操作系統(tǒng)了,就好像什么都沒有發(fā)生過一樣?!?a rel="nofollow" >Knoppix】
Fedora 這是一個由社區(qū)開發(fā)維護的發(fā)行版,由 Red Hat 公司贊助。它是最流行的 Linux 發(fā)行版之一。它包含 Linux 核心、KDE、GNOME 和 XFCE 桌面以及眾多的 FLOSS,而所有這些都易于安裝、易于使用。
如果你擔(dān)心你是一個完全的 Linux 生手,那么我推薦你嘗試 Mandrake Linux。最新發(fā)布 Mandrake 10.1 確實很棒?!?a rel="nofollow" >Fedora Linux、Mandrake Linux】
OpenOffice.org 這是一個優(yōu)秀的辦公套件,它基于 Sun Microsystems 的 StarOffice 軟件。OpenOffice 由文本編寫器、演講輔助、電子表格和繪圖組件等等組成。它甚至可以方便地打開和編輯微軟 Word 和 PowerPoint 文件。它可以在幾乎所有平臺上運行。即將推出的 OpenOffice 2.0 有一些重大的改進。【OpenOffice】
Mozilla Firefox 這是被認為可以在未來幾年擊敗 Internet Explorer(僅按照市場份額計算)的下一代網(wǎng)絡(luò)瀏覽器。它極快,它的一些合理的、令人印象深刻的特性廣受好評。它的擴展理念允許在它上面添加各種功能。
它的姐妹產(chǎn)品 Thunderbird 是一個優(yōu)秀的電子郵件客戶端,使閱讀電子郵件變得十分快捷?!綧ozilla Firefox、Mozilla Thunderbird】
Mono 這是一個微軟.NET 平臺的開源實現(xiàn)。它使我們可以在 Linux、Windows、FreeBSD、Mac OS 和許多其他平臺上創(chuàng)建和運行.NET程序。Mono 執(zhí)行 CLI 和 C#的 ECMA 標準,這個標準已經(jīng)由微軟、英特爾和惠普提交稱為一個開放標準。這也是邁向 ISO 標準的一步。
目前,Mono 包含一個完整的 C#主控制臺(它本身也由 C#編寫?。?、一個具備完整特性的 ASP.NET 實現(xiàn)、許多數(shù)據(jù)庫 ADO.NET 提供器另外還有每天不斷改善和增加的新特性。【Mono、ECMA、Microsoft .NET】
Apache 網(wǎng)絡(luò)服務(wù)器 這是最流行的開源網(wǎng)絡(luò)服務(wù)器。事實上,它是地球上最流行的網(wǎng)絡(luò)服務(wù)器!它運行著幾乎 60%的網(wǎng)站。對——Apache 處理的網(wǎng)站比它所有的競爭對手(包括微軟 IIS)之和還要多?!?a rel="nofollow" >Apache】
MySQL 這是一個極其流行的開源數(shù)據(jù)庫服務(wù)器。它以它的快速最為著名。在它的最新版本中又添加了更多的特性?!?a rel="nofollow" >MySQL】
MPlayer 這是一個視頻播放器,可以播放 DivX、MP3、Ogg、VCD、DVD……誰說開源軟件就不能具有趣味呢?【MPlayer】
上面這個列表只是希望給你一個大概的印象——還有很多別的優(yōu)秀 FLOSS,比如 Perl 語言、PHP 語言、Drupal 網(wǎng)站內(nèi)容管理系統(tǒng)、PostgreSQL 數(shù)據(jù)庫服務(wù)器、TORCS 賽車游戲、KDevelop IDE、Anjuta IDE、Xine——電影播放器、VIM 編輯器、Quanta+編輯器、XMMS 音頻播放器、GIMP 圖像編輯程序……這個列表可以一直繼續(xù)下去。
訪問下述網(wǎng)站以獲取更多 FLOSS 信息:
要獲知 FLOSS 世界的最新進展,請訪問下述網(wǎng)站:
那么,現(xiàn)在就出發(fā)去探索廣博、免費、開放的 FLOSS 世界了吧!
我在編寫本書時使用的幾乎所有軟件都是 免費開放源碼的軟件 。在編寫本書的第一個草稿的時候,我使用的是 Red Hat 9.0 Linux,而現(xiàn)在第六次改寫的時候,使用的是 Fedora Core 3 Linux。
最初,我使用 KWord 編寫本書(在前言的本書的由來中已經(jīng)介紹了)。后來,我開始使用 DocBook XML 和 Kate,但是我發(fā)現(xiàn)這樣太乏味。所以,我開始使用 OpenOffice,它對格式的控制以及生成 PDF 的能力是很棒的。但是它生成的 HTML 過于龐大。最后,我發(fā)現(xiàn)了 XEmacs,于是我又開始重新使用 DocBook XML 來編寫本書,并且那時我打算把這個模式作為將來長期的方案。在這個最新的第六次重寫時,我決定使用 Quanta+ 來編輯。
我使用了標準的 XSL 樣式表,它隨 Fedora Core 3 Linux 附帶。另外,我也使用了標準的默認字體。我編寫了一個 CSS 文件來為 HTML 頁增加顏色和樣式。同時,我還用 Python 語言編寫了一個粗劣的詞匯分析器,它自動為書中所有的程序進行語法加亮。
Swaroop C. H. 在 Yahoo!駐印度班加羅爾的辦事處工作,他十分熱愛他的工作。他目前在技術(shù)領(lǐng)域的興趣有:包括 Linux、DotGNU、Qt 和 MySQL 在內(nèi)的 FLOSS、Python 和 C#編程語言。另外他在業(yè)余時間編寫一些如本書這樣的教材和其他軟件,以及編寫他的網(wǎng)上日記。他的其他愛好有咖啡、Robert Ludlum 的小說、遠足和政治等。
如果你有興趣了解他的更多故事,可以在 www.swaroopch.info 上查看他的網(wǎng)上日記。
沈潔元 目前是上海交通大學(xué)無線通信研究所的一名碩士研究生。他現(xiàn)在的研究領(lǐng)域主要在多載波 CDMA 系統(tǒng)的同步、信道估計、多用戶檢測等方面。Python 語言(和 Numeric 庫)是他目前在進行仿真和其他科研工作時使用的主要編程語言。在業(yè)余時間,他樂衷于各種 FLOSS,如 FreeBSD 操作系統(tǒng)、PyGTK 等等。電影、F1 賽車和網(wǎng)球也是他的興趣愛好。
在半年多前開始學(xué)習(xí)使用 Python 編程語言。正如 Swaroop 在本書中所說的那樣,它很快就成為“我最喜歡的編程語言”。目前我的幾乎所有編程工作都使用 Python。從我的切身體會來說,Python 最大的特點就是易懂、易用、高效率。我相信,如果你已經(jīng)學(xué)完了本書,并且嘗試著編寫了一些程序后,你一定會有相同的感受。
Swaroop C. H.的這本書是我學(xué)習(xí) Python 時的第一本教材。它簡單明晰,可以在最短的時間內(nèi)把你領(lǐng)進 Python 的世界。它不是很長,但是覆蓋了幾乎所有重要的 Python 知識。在第一次讀本書的時候,我就深切的感到這是給 Python 初學(xué)者的一本極佳教材,應(yīng)該是每一位 Python 初學(xué)者的第一本教材。
我利用業(yè)余時間翻譯了這本教材的簡體中文譯本。一方面是為了感謝 Swaroop 給我們帶來了那么好的一本教材,同時也是為了把本書介紹給更多的中國讀者,希望讓 Python 在中國更加普及。如果讀了本書之后,你開始將 Python 應(yīng)用于你的工作學(xué)習(xí),這將是我和 Swaroop 以及其他 Python 用戶的榮幸。如果你在學(xué)習(xí)和使用 Python 的過程中,遇到任何問題,你一定要試試使用 Python 的郵件列表資源。你一定會得到世界各地的 Python 高手的熱情幫助。
本書的英文原名為《A Byte of Python》。經(jīng)過與 Swaroop 的探討,在翻譯時,我把書名定為《簡明 Python 教程》,以充分體現(xiàn)本書區(qū)別于其他 Python 教材的鮮明特色。在翻譯這本簡體中文譯本時,我力求準確清晰。在原書中個別不甚清晰的地方,都與作者進行討論后再行翻譯。另外,在這本簡體中文譯本中,我還為書中所有的程序例子配上了源代碼,并且在書后附上了中英對照的術(shù)語表,以便讀者以后繼續(xù)學(xué)習(xí)其他 Python 英文資料。
本譯本作為原書的派生作品,依照創(chuàng)作公用約定(署名-非派生作品-非商業(yè)用途)發(fā)布。簡單地說,你只要署上我的名字,就可以免費復(fù)制、分發(fā)和展示本譯本。未得到我的允許,你禁止把本譯本用于商業(yè)目的,也不能再在本譯本的基礎(chǔ)上修改、派生新的作品。
如果你對本書和譯本有任何批評和建議,十分歡迎你與我聯(lián)系:orion_val@163.com。
本文檔在 2005 年 1 月 13 日 4 點 02 分生成。
修訂記錄
1.20 版 2005 年 1 月 13 日
使用 FC3 上的 Quanta+的完全重寫。做了許多修正和更新。添加了許多新的例子。重寫了我的 DocBook 設(shè)置。
1.15 版 2004 年 3 月 28 日
少量修訂。
1.12 版 2004 年 3 月 16 日
添加修正了一些內(nèi)容。
1.10 版 2004 年 3 月 9 日
感謝我的熱情讀者的幫助,我對更多的筆誤做了修改。
1.00 版 2004 年 3 月 8 日
在從讀者處獲得了大量反饋和建議之后,我對本書的內(nèi)容做了重要的修訂,并且改正了一些筆誤。
0.99 版 2004 年 2 月 22 日
增加了模塊一章。增加了對可變數(shù)目函數(shù)參數(shù)的詳細介紹。
0.98 版 2004 年 2 月 16 日
編寫了一個 Python 腳本和 CSS 樣式表來改善 XHTML 的輸出效果。其中包括一個功能還很拙劣的詞匯分析器,用來自動地為程序做類似于 VIM 地語法加亮。
0.97 版 2004 年 2 月 13 日
(再次)使用 DocBook XML 完全重寫。本書改進了許多——更加有條理和易讀。
0.93 版 2004 年 1 月 25 日
增加了關(guān)于 IDLE 的介紹以及更多 Windows?相關(guān)的話題 。
0.92 版 2004 年 1 月 5 日
修改了幾個例子。
0.91 版 2003 年 12 月 30 日
修正了排版錯誤。改進了許多章節(jié)的內(nèi)容。
0.90 版 2003 年 12 月 18 日
增加了 2 章。使用 OpenOffice 格式修訂。
0.60 版 2003 年 11 月 21 日
完全地重寫和擴展。
0.20 版 2003 年 11 月 20 日
修改了一些排版錯誤和其他錯誤。
0.15 版 2003 年 11 月 20 日
改用 DocBook XML。
0.10 版 2003 年 11 月 14 日
最初使用 KWord 編寫的草稿。
| argument | 實參 |
|---|---|
| attribute | 屬性 |
| base class | 基本類 |
| block | 塊 |
| character | 字符 |
| class | 類 |
| comment | 注釋 |
| complex number | 復(fù)數(shù) |
| derived class | 導(dǎo)出類 |
| dictionary | 字典 |
| escape sequence | 轉(zhuǎn)義符 |
| exception | 異常 |
| expression | 表達式 |
| field | 域 |
| float | 浮點數(shù) |
| function | 函數(shù) |
| identifier | 標識符 |
| indentation | 縮進 |
| indexing | 索引 |
| instance | 實例 |
| integer | 整數(shù) |
| list | 列表 |
| list comprehension | 列表綜合 |
| literal constant | 字面意義上的常量 |
| logical line | 邏輯行 |
| long integer | 長整數(shù) |
| method | 方法 |
| module | 模塊 |
| namespace | 名稱空間 |
| object | 對象 |
| operand | 操作數(shù) |
| operator | 運算符 |
| parameter | 形參 |
| pickle | 儲存器 |
| physical line | 物理行 |
| sequence | 序列 |
| shebang line | 組織行 |
| slicing | 切片 |
| statement | 語句 |
| string | 字符串 |
| subclass | 子類 |
| superclass | 超類 |
| tuple | 元組 |
| type | 類型 |
| variable | 變量 |