1. 課前甜點?
如果你經常在電腦上工作,總會有些任務會想讓它自動化。比如,對一大堆文本文件進行查找替換,對很多照片文件按照比較復雜的規則重命名并放入不同的文件夾。也可能你想寫一個小型的數據庫應用,一個特定的圖形界面應用,或者一個簡單的游戲。
如果你是專業的軟件開發人員,你可能需要編寫一些 C/C++/Java 庫,但總覺得通常的 編寫、編譯、測試、再次編譯 流程太慢了。可能給這樣的庫寫一組測試,就是很麻煩的工作了。或許你寫了個軟件,可以支持插件擴展語言,但你不想為了自己這一個應用,專門設計和實現一種新語言了。
那么,Python 正好能滿足你的需要。
對于這些任務,你也可以寫 Unix shell 腳本或者 Windows 批處理完成,但是 shell 腳本最擅長移動文件和替換文本,并不適合 GUI 界面或者游戲開發。你可以寫一個 C/C++/Java 程序,但是可能初稿都要很長的開發時間。Python 的使用則更加簡單,可以在 Windows,Mac OS X,以及 Unix 操作系統上使用,而且可以幫你更快地完成工作。
Python 很容易使用,但它是一種真正的編程語言,提供了很多數據結構,也支持大型程序,遠超 shell 腳本或批處理文件的功能。Python 還提供比 C 語言更多的錯誤檢查,而且作為一種 “超高級語言”,它有高級的內置數據類型,比如靈活的數組和字典。正因為這些更加通用的數據類型,Python 能夠應付更多的問題,超過 Awk 甚至 Perl,而且很多東西在 Python 中至少和那些語言同樣簡單。
Python 允許你將程序劃分為能在其他的 Python 程序中重復利用的模塊。它內置了很多的標準模塊,你可以在此基礎上開發程序——也可以作為例子,開始學習 Python 編程。例如,一切內置模塊提供諸如文件輸入輸出、系統調用、套接字、甚至圖形界面接口工作包比如 Tk。
Python 是一種解釋型語言,在程序開發階段可以為你節省大量時間,因為不需要編譯和鏈接。解釋器可以交互式使用,這樣就可以方便地嘗試語言特性,寫一些一次性的程序,或者在自底向上的程序開發中測試功能。它也是一個順手的桌面計算器。
Python 程序的書寫是緊湊而易讀的。Python 代碼通常比同樣功能的 C,C++,Java 代碼要短很多,有如下幾個原因:
高級數據類型允許在一個表達式中表示復雜的操作;
代碼塊的劃分是按照縮進而不是成對的花括號;
不需要預先定義變量或參數。
Python 是 “可擴展的”:如果你知道怎么寫 C 語言程序,就能很容易地給解釋器添加新的內置函數或模塊,不論是讓關鍵的操作以最高速度運行,還是把 Python 程序鏈接到只提供預編譯程序的庫(比如硬件相關的圖形庫)。一旦你真正鏈接上了,就能在 Python 解釋器中擴展或者控制 C 語言編寫的應用了。
順便提一下,這種語言的名字(python 一詞直譯為 “蟒蛇”)得名自 BBC 節目 “Monty Python的飛行馬戲團” ,而與爬行動物沒有關系。在文檔中用 Monty Python 來開玩笑不只是被允許的,還是被推薦的!
現在你已經對 Python 躍躍欲試了,想要深入了解一些細節了。因為學習語言的最佳方式是使用它,本教程邀請你一邊閱讀,一邊在 Python 解釋器中玩耍。
在下一章節,會講解使用解釋器的方法。看起來相當枯燥,但是對于嘗試后續的例子來說,是非常關鍵的。
教程的其他部分將通過示例介紹 Python 語言和系統中的不同功能,開始是比較簡單的表達式、語句和數據類型,然后是函數和模塊,最終接觸一些高級概念,比如異常、用戶定義的類。
