若是你有認真通讀本書以前的內容而且實踐其中包含的大量例程,那麼你如今必定能夠熟練使用python了。html
同時你可能也編寫了一些程序用於驗證python特性並提升你的python技能。若是尚未這樣作的話,你應該去試試。java
如今的問題是接下來應該作什麼?python
我建議你先解決下面的問題:linux
建立你本身的命令行版本的通信錄程序,利用它你能夠瀏覽修改刪除或搜索諸如朋友,家人,同事等聯繫人和程序員
他們的email地址/或電話號碼等信息。這些信息必須存起來以便須要時提取。web
思考下咱們已經學到的各類知識,這個問題其實至關簡單。面試
若是你感受仍是很差下手的話,這有一些提示。正則表達式
提示(其實最好不要閱讀這個提示)windows
建立一個表示聯繫人(persion)信息的類。使用字典存儲聯繫人對象並以人物的名字做爲字典鍵。瀏覽器
而後利用pickle模塊把這些對象永久存儲到你的硬盤中。
最後經過字典的內建方法add, delete和modify分別增長刪除修改聯繫人。
只要你有能力完成這個程序,你就能夠自信的說你是一個python程序員了。
那麼如今立刻給我發送mail(http://www.swaroopch.com/contact/)好感謝我編寫了如此強大的教程吧:-)
固然這步是可選的但我仍是但願你發過來。
同時,也請考慮下捐贈,提供改進意見建議或是自願翻譯本書,以支持本書的持續發展。(注:我翻譯的我翻譯的我翻譯的...)
若是你以爲上面的程序太簡單,這還有另外一個:
實現replace命令(http://unixhelp.ed.ac.uk/CGI/man-cgi?replace)
此命令用於在給定的文件列表中的全部文件中替換指定的字符串。
replace命令能夠簡單的執行字符串替換也能夠複雜的進行模式查找(正則表達式),這取決於你的意願。
下面是一些繼續學習python的方法:
實例代碼
學習程序設計最好的辦法就是編寫閱讀大量代碼:
• PLEAC項目(http://pleac.sourceforge.net/pleac_python)
• Rosetta代碼資料庫(Rosetta code repository)(http://rosettacode.org/wiki/Category:Python)
• java2s 網的python範例 (http://www.java2s.com/Code/Python/CatalogPython.htm)
• Python Cookbook (http://code.activestate.com/recipes/langs/python/)
對於某些種類的問題Python Cookbook提供了許多解決問題的珍貴技巧和訣竅。此網是每一個python用戶都必讀的。
問題與解答
• 官方Python Dos and Don'ts (http://docs.python.org/dev/howto/doanddont.html)(注:Dos and Don’ts是 可爲與不可爲 的意思)
• 官方Python 問與答 (http://docs.python.org/faq/general)
• Norvig的寶貴的已解答問題列表(http://norvig.com/python-iaq.html)
• Python面試問答 (http://dev.fyicenter.com/Interview-Questions/Python/index.html)
• StackOverflow網的python相關問題(http://stackoverflow.com/questions/tagged/python)
技巧和訣竅
• Python技巧和訣竅(http://www.siafoo.net/article/52)
• 使用python的高級軟件木工(http://ivory.idyll.org/articles/advanced-swc/)
• 引人入勝的python(Charming Python) (http://gnosis.cx/publish/tech_index_cp.html)是一系列優秀的python相關的文章,做者David Mertz.
書籍,文章,教程,視頻
邏輯上看完本書應該讀讀Mark Pilgrim那超棒的Dive Into Python一書(http://www.diveintopython.org/),你能夠在線完整閱讀。
此書詳細的探索了諸如正則表達式,XML處理,web服務,單元測試等內容。
其它有用的資源:
• ShowMeDo的python視頻 (http://showmedo.com/videotutorials/python)
• GoogleTechTalks的python視頻 (http://youtube.com/results?searchquery=googletechtalks+python)
• Awaretek的python教程的綜合列表(http://www.awaretek.com/tutorials.html)
• Effbot的Python Zone (http://effbot.org/zone/)
• 每一個Python-URL!郵件尾的連接(http://groups.google.com/group/comp.lang.python.announce/t/37de95ef0326293d)
• Python Papers (http://pythonpapers.org)
討論組
若是你被某個問題難住了,也不知道找誰求助,那麼comp.lang.python討論組是個提問的好地方。
(http://groups.google.com/group/comp.lang.python/topics)
記住儘可能本身解決問題,不行再去發問。
新聞
若是你想了解python的最新動態,請關注Official Python Planet (http://planet.python.org) 和Unofficial Python Planet (http://www.planetpython.org).
安裝庫
python包索引(Python Package Index)擁有數量巨大的開源庫,你能夠在本身的程序中使用它們。(http://pypi.python.org/pypi)
安裝和使用這些庫,你可使用Philip J. Eby的優秀的EasyInstall工具。
(http://peak.telecommunity.com/DevCenter/EasyInstall#using-easy-install)。
圖形軟件
若是你想使用python建立本身的圖形程序。那麼可使用已綁定到python上的GUI(圖形用戶界面)庫。
綁定容許你在本身的程序中使用這些庫,而庫自己是用C/C++或其它語言編寫的。
使用python你能夠選擇不少種GUI庫:
PyQt
這是綁定到python的Qt工具包,它是建立KDE的基石。
Qt很是易用,功能又很強大,尤爲是仰仗於它的Qt Designer與出色的Qt文檔。
若是你在建立開源軟件(GPL’ed)則PyQt是免費的, 相反建立私營閉源軟件的用戶就要掏銀子買它了。
從Qt4.5開始你一樣能夠用它建立非GPL軟件。
做爲入門能夠閱讀PyQt教程(http://zetcode.com/tutorials/pyqt4/)或者PyQt book (http://www.qtrac.eu/pyqtbook.html).
PyGTK
GTK+工具包的python綁定。它是GNOME的基礎。
GTK+含有不少奇怪的用法,不過一旦熟悉它你就可以快速建立GUI應用了。其中Glade圖形界面設計器是必不可少的。
GTK+的文檔仍然完善中。GTK+在linux上工做的很好,但其windows實現仍未完成。
另外使用GTK+你既能夠建立開源也能夠建立私營軟件。
入門能夠閱讀PyGTK教程(http://www.pygtk.org/tutorial.html)
wxPython
這是綁定到python的wxWidgets工具包。
wxPython有必定的學習曲線。可是具備很強的可移植性,能夠運行在linux,windows,Mac甚至是嵌入式平臺之上。
wxPython擁有不少可用的IDE,其中包括GUI設計器和諸如SPE(Stani的python編輯器)(http://spe.pycs.net)和
wxGlade(http://wxglade.sourceforge.net/)的開發工具。
入門能夠閱讀wxPython教程(http://zetcode.com/wxpython/)
Tkinter
這是現存最老的GUI工具包之一。若是你用過IDLE,它就是一個使用Tkinter編寫的程序。
Tkinter沒有什麼不錯的視覺外觀,由於它是個守舊派。
Tkinter是可移植的可以運行在Linux/Unix和Windows上。更重要的Tkinter是標準python發佈版的一部分。
入門能夠閱讀Tkinter教程(http://www.pythonware.com/library/tkinter/troduction/)。
更多的GUI庫選擇,見python官網的GuiProgramming維基頁面(http://wiki.python.org/moin/GuiProgramming)
GUI工具小結
很不幸,python沒有一個標準GUI工具。我建議根據你的狀況選擇上面的工具。
考慮的第一歌因素是你是否願意付費使用GUI工具。
第二你是否但願程序只運行在windows或mac或linux仍是但願都能運行。
第三對於linux平臺,你是一個KDE仍是一個GNOME用戶呢。
更詳細普遍的分析,見Python Papers 第26頁卷3問題1(http://archive.pythonpapers.org/ThePythonPapersVolume3Issue1.pdf)
各類python實現
一個程序設計語言一般包含兩部分 – 語言和軟件。語言指出如何編寫程序。而軟件用來運行咱們的程序。
咱們一直在用CPython運行咱們的程序,之因此稱爲CPython是由於它是用C語言實現的而且爲標準python解釋器。
另外還有其它的軟件也能夠運行python程序:
Jython (http://www.jython.org)
一個運行在java平臺的python實現。這意味着你能夠在python語言內部使用java庫和類,反之亦然。
IronPython (http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython)
一個運行在.NET平臺的python實現。即你能夠在python語言內部使用java庫和類,反之亦然
PyPy (http://codespeak.net/pypy/dist/pypy/doc/home.html)
一個用python寫的python實現!
這是一個研究項目,用於使之能夠快而容易的改進解釋器,由於解釋器自己就是用動態語言編寫的。(而不是相似上面的C, java或C#等靜態語言)
Stackless Python (http://www.tackless.com)
一個專用於基於線程性能的python實現。
除此以外還有CLPython(http://common-lisp.net/project/clpython/)一個Common Lisp編寫的python實現。
IronMonkey(https://wiki.mozilla.org/Tamarin:IronMonkey)是一個運行在JavaScript解釋器之上的IronPython的接口,
這可能意味着你可使用python(替代JavaScript)編寫web瀏覽器程序(「Ajax」)。
以上的每一個實現都有本身的擅長領域。
小結
如今咱們已經來到本書的結尾了。不過聽說,結束意味着另外一個開始!
你如今是一個滿腔熱切的python用戶,極可能摩拳擦掌準備利用python解決大量問題。
如今你可讓計算機自動完成許多之前沒法想象的事情或是編寫遊戲或是更多更多。
既然如此!那就行動起來大幹一場吧!