# 第16章 接下來學習什么?
**目錄表**
+ 圖形軟件
+ GUI工具概括
+ 探索更多內容
+ 概括
如果你已經完全讀完了這本書并且也實踐著編寫了很多程序,那么你一定已經能夠非常熟練自如地使用Python了。你可能也已經編寫了一些Python程序來嘗試練習各種Python技能和特性。如果你還沒有那樣做的話,那么你一定要快點去實踐。現在的問題是“接下來學習什么?”。
我會建議你先解決這樣一個問題:創建你自己的命令行 地址簿 程序。在這個程序中,你可以添加、修改、刪除和搜索你的聯系人(朋友、家人和同事等等)以及它們的信息(諸如電子郵件地址和/或電話號碼)。這些詳細信息應該被保存下來以便以后提取。
思考一下我們到目前為止所學的各種東西的話,你會覺得這個問題其實相當簡單。如果你仍然希望知道該從何處入手的話,那么這里也有一個提示。
**提示(其實你不應該閱讀這個提示)** 創建一個類來表示一個人的信息。使用字典儲存每個人的對象,把他們的名字作為鍵。使用cPickle模塊永久地把這些對象儲存在你的硬盤上。使用字典內建的方法添加、刪除和修改人員信息。
一旦你完成了這個程序,你就可以說是一個Python程序員了。現在,請立即寄一封信給我感謝我為你提供了這本優秀的教材吧。是否告知我,如你所愿,但是我確實希望你能夠告訴我。
這里有一些繼續你的Python之路的方法:
使用Python的**GUI**庫——你需要使用這些庫來用Python語言創建你自己的圖形程序。使用GUI庫和它們的Python綁定,你可以創建你自己的IrfanView、Kuickshow軟件或者任何別的類似的東西。綁定讓你能夠使用Python語言編寫程序,而使用的庫本身是用C、C++或者別的語言編寫的。
有許多可供選擇的使用Python的GUI:
* **PyQt** 這是Qt工具包的Python綁定。Qt工具包是構建KDE的基石。Qt,特別是配合Qt Designer和出色的Qt文檔之后,它極其易用并且功能非常強大。你可以在Linux下免費使用它,但是如果你在Windows下使用它需要付費。使用PyQt,你可以在Linux/Unix上開發免費的(GPL約定的)軟件,而開發具產權的軟件則需要付費。一個很好的PyQt資源是[《使用Python語言的GUI編程:Qt版》](http://www.opendocs.org/pyqt/)請查閱[官方主頁](http://www.riverbankcomputing.co.uk/pyqt/index.php)以獲取更多詳情。
* **PyGTK** 這是GTK+工具包的Python綁定。GTK+工具包是構建GNOME的基石。GTK+在使用上有很多怪癖的地方,不過一旦你習慣了,你可以非常快速地開發GUI應用程序。Glade圖形界面設計器是必不可少的,而文檔還有待改善。GTK+在Linux上工作得很好,而它的Windows接口還不完整。你可以使用GTK+開發免費和具有產權的軟件。請查閱[官方主頁](http://www.pygtk.org/)以獲取更多詳情。
* **wxPython** 這是wxWidgets工具包的Python綁定。wxPython有與它相關的學習方法。它的可移植性極佳,可以在Linux、Windows、Mac甚至嵌入式平臺上運行。有很多wxPython的IDE,其中包括GUI設計器以及如[SPE(Santi's Python Editor)](http://spe.pycs.net)和[wxGlade](http://wxglade.sourceforge.net)那樣的GUI開發器。你可以使用wxPython開發免費和具有產權的軟件。請查閱[官方主頁](http://www.wxpython.org/)以獲取更多詳情。
* **TkInter** 這是現存最老的GUI工具包之一。如果你使用過IDLE,它就是一個TkInter程序。在[PythonWare.org](http://www.pythonware.com/library/tkinter/introduction/index.htm)上的TkInter文檔是十分透徹的。TkInter具備可移植性,可以在Linux/Unix和Windows下工作。重要的是,TkInter是標準Python發行版的一部分。
* 要獲取更多選擇,請參閱[Python.org上的GUI編程wiki頁](http://www.python.org/cgi-bin/moinmoin/GuiProgramming)。
不幸的是,并沒有單一的標準Python GUI工具。我建議你根據你的情況在上述工具中選擇一個。首要考慮的因素是你是否愿意為GUI工具付費。其次考慮的是你是想讓你的程序運行在Linux下、Windows下還是兩者都要。第三個考慮因素根據你是Linux下的KDE用戶還是GNOME用戶而定。
未來的章節
我打算為本書編寫一或兩個關于GUI編程的章節。我可能會選擇wxPython作為工具包。如果你想要表達你對這個主題的意見,請加入[byte-of-python郵件列表](http://lists.ibiblio.org/mailman/listinfo/byte-of-python)。在這個郵件列表中,讀者會與我討論如何改進本書。
- 版權信息
- 前言
- 本書的由來
- 本書目前的狀況
- 約定條款
- 反饋
- 值得思考的一些東西
- 第1章 介紹
- Python的特色
- 為什么不使用Perl?
- 程序員的話
- 第2章 安裝Python
- Windows?用戶
- 概括
- 第3章 最初的步驟
- 使用帶提示符的解釋器
- 挑選一個編輯器
- 使用源文件
- 可執行的Python程序
- 獲取幫助
- 概括
- 第4章 基本概念
- 數
- 字符串
- 變量
- 標識符的命名
- 數據類型
- 對象
- 邏輯行與物理行
- 縮進
- 概括
- 第5章 運算符與表達式
- 運算符
- 運算符優先級
- 表達式
- 概括
- 第6章 控制流
- if語句
- while語句
- for循環
- break語句
- continue語句
- 概括
- 第7章 函數
- 函數形參
- 局部變量
- 默認參數值
- 關鍵參數
- return語句
- DocStrings
- 概括
- 第8章 模塊
- 字節編譯的.pyc文件
- from..import語句
- 模塊的name
- 制造你自己的模塊
- dir()函數
- 概括
- 第9章 數據結構
- 列表
- 元組
- 字典
- 序列
- 參考
- 更多字符串的內容
- 概括
- 第10章 解決問題——編寫一個Python腳本
- 解決方案
- 軟件開發過程
- 概括
- 第11章 面向對象的編程
- self
- 類
- 對象的方法
- __init__方法
- 類與對象的方法
- 繼承
- 概括
- 第12章 輸入/輸出
- 儲存器
- 概括
- 第13章 異常
- try..except
- 引發異常
- try..finally
- 概括
- 第14章 Python標準庫
- sys模塊
- os模塊
- 概括
- 第15章 更多Python的內容
- 單語句塊
- 列表綜合
- 在函數中接收元組和列表
- lambda形式
- exec和eval語句
- assert語句
- repr函數
- 概括
- 第16章 接下來學習什么?
- 探索更多內容
- 概括
- 附錄A 自由/開放源碼軟件(FLOSS)
- 附錄B 關于本書
- 關于作者
- 關于譯者
- 關于簡體中文譯本
- 附錄C 修訂記錄
- 術語表