1. 激發你的食慾

如果你經常使用計算機工作,最終你會發現有些任務你希望自動化。例如,你可能希望在大量文字檔案中執行搜尋和替換操作,或者以複雜的方式重新命名和重新排列一堆照片檔案。也許你想編寫一個小型自定義資料庫,或者一個專門的 GUI 應用程式,或者一個簡單的遊戲。

如果你是一名專業的軟體開發人員,你可能需要使用多個 C/C++/Java 庫,但發現通常的編寫/編譯/測試/重新編譯週期太慢。也許你正在為這樣一個庫編寫測試套件,並發現編寫測試程式碼是一項繁瑣的任務。或者,也許你已經編寫了一個可以使用擴充套件語言的程式,而你不想為你的應用程式設計和實現一種全新的語言。

Python 正是你需要的語言。

你可以為其中一些任務編寫 Unix shell 指令碼或 Windows 批處理檔案,但是 shell 指令碼最擅長移動檔案和更改文字資料,不適合 GUI 應用程式或遊戲。你可以編寫 C/C++/Java 程式,但是即使是第一個草稿程式也可能需要大量的開發時間。Python 更易於使用,可在 Windows、macOS 和 Unix 作業系統上使用,並且可以幫助你更快地完成工作。

Python 易於使用,但它是一種真正的程式語言,它比 shell 指令碼或批處理檔案提供了更多的結構和對大型程式的支援。另一方面,Python 也比 C 提供了更多的錯誤檢查,而且,作為一種非常高階的語言,它內建了高階資料型別,例如靈活的陣列和字典。由於其更通用的資料型別,Python 比 Awk 甚至 Perl 適用於更大的問題領域,但許多事情在 Python 中至少與在這些語言中一樣容易。

Python 允許你將程式拆分為可以在其他 Python 程式中重用的模組。它附帶了大量標準模組,你可以將其用作程式的基礎,或者作為開始學習用 Python 程式設計的示例。其中一些模組提供了諸如檔案 I/O、系統呼叫、套接字,甚至圖形使用者介面工具包(如 Tk)的介面。

Python 是一種解釋型語言,由於不需要編譯和連結,因此可以在程式開發過程中節省大量時間。直譯器可以互動使用,這使得在自下而上的程式開發過程中很容易試驗該語言的功能,編寫一次性程式或測試函式。它也是一個方便的桌面計算器。

Python 使程式可以編寫得緊湊且可讀。由於以下幾個原因,用 Python 編寫的程式通常比等效的 C、C++ 或 Java 程式短得多:

  • 高階資料型別允許你用單個語句表達複雜的操作;

  • 語句分組是透過縮排而不是開始和結束括號來完成的;

  • 不需要變數或引數宣告。

Python 是可擴充套件的:如果你知道如何用 C 程式設計,那麼很容易向直譯器新增一個新的內建函式或模組,以便以最大速度執行關鍵操作,或者將 Python 程式連結到可能只有二進位制形式可用的庫(例如,供應商特定的圖形庫)。一旦你真正迷上了,你可以將 Python 直譯器連結到一個用 C 編寫的應用程式中,並將其用作該應用程式的擴充套件或命令語言。

順便說一句,該語言以 BBC 節目“蒙提·派森的飛行馬戲團”命名,與爬行動物無關。在文件中引用蒙提·派森的小品不僅是允許的,而且是鼓勵的!

現在你對 Python 感到興奮,你可能想更詳細地研究它。由於學習一門語言的最佳方法是使用它,因此本教程邀請你在閱讀時使用 Python 直譯器進行練習。

在下一章中,將解釋使用直譯器的機制。這是一個相當平凡的資訊,但對於嘗試稍後顯示的示例至關重要。

本教程的其餘部分透過示例介紹了 Python 語言和系統的各種功能,從簡單的表示式、語句和資料型別開始,到函式和模組,最後涉及諸如異常和使用者定義的類之類的高階概念。