如果你要用計算機做很多工作,最后你會發現有一些任務你更希望用自動化的方式進行處理。比如,你想要在大量的文本文件中執行查找/替換,或者以復雜的方式對大量的圖片進行重命名和整理。也許你想要編寫一個小型的自定義數據庫、一個特殊的 GUI 應用程序或一個簡單的小游戲。
如果你是一名專業的軟件開發者,可能你必須使用幾種 C/C++/JAVA 類庫,并且發現通常編寫/編譯/測試/重新編譯的周期是如此漫長。也許你正在為這些類庫編寫測試用例,但是發現這是一個讓人煩躁的工作。又或者你已經完成了一個可以使用擴展語言的程序,但你并不想為此重新設計并實現一套全新的語言。
那么 Python 正是你所需要的語言。
雖然你能夠通過編寫 Unix shell 腳本或 Windows 批處理文件來處理其中的某些任務,但 Shell 腳本更適合移動文件或修改文本數據,并不適合編寫 GUI 應用程序或游戲;雖然你能夠使用 C/C++/JAVA 編寫程序,但即使編寫一個簡單的 first-draft 程序也有可能耗費大量的開發時間。相比之下,Python 更易于使用,無論在 Windows、Mac OS X 或 Unix 操作系統上它都會幫助你更快地完成任務。
雖然 Python 易于使用,但它卻是一門完整的編程語言;與 Shell 腳本或批處理文件相比,它為編寫大型程序提供了更多的結構和支持。另一方面,Python 提供了比 C 更多的錯誤檢查,并且作為一門 高級語言,它內置支持高級的數據結構類型,例如:靈活的數組和字典。因其更多的通用數據類型,Python 比 Awk 甚至 Perl 都適用于更多問題領域,至少大多數事情在 Python 中與其他語言同樣簡單。
Python 允許你將程序分割為不同的模塊,以便在其他的 Python 程序中重用。Python 內置提供了大量的標準模塊,你可以將其用作程序的基礎,或者作為學習 Python 編程的示例。這些模塊提供了諸如文件 I/O、系統調用、Socket 支持,甚至類似 Tk 的用戶圖形界面(GUI)工具包接口。
Python 是一門解釋型語言,因為無需編譯和鏈接,你可以在程序開發中節省寶貴的時間。Python 解釋器可以交互的使用,這使得試驗語言的特性、編寫臨時程序或在自底向上的程序開發中測試方法非常容易。你甚至還可以把它當做一個桌面計算器。
Python 讓程序編寫的緊湊和可讀。用 Python 編寫的程序通常比同樣的 C、C++ 或 Java 程序更短小,這是因為以下幾個原因:
* 高級數據結構使你可以在一條語句中表達復雜的操作;
* 語句組使用縮進代替開始和結束大括號來組織;
* 變量或參數無需聲明。
Python 是 可擴展 的:如果你會 C 語言編程便可以輕易地為解釋器添加內置函數或模塊,或者為了對性能瓶頸作優化,或者將 Python 程序與只有二進制形式的庫(比如某個專業的商業圖形庫)連接起來。一旦你真正掌握了它,你可以將 Python 解釋器集成進某個 C 應用程序,并把它當作那個程序的擴展或命令行語言。
順便說一句,這個語言的名字來自于 BBC 的 “Monty Python’s Flying Cirecus” 節目,和爬行類動物沒有任何關系。在文檔中引用 Monty Python 的典故不僅可行,而且值得鼓勵!
現在你已經為 Python 興奮不已了吧,大概想要領略一些更多的細節!學習一門語言最好的方法就是使用它,本指南推薦你邊讀邊使用 Python 解釋器練習。
下一節中,我們將解釋 Python 解釋器的用法。這是很簡單的一件事情,但它有助于試驗后面的例子。
本手冊剩下的部分將通過示例介紹 Python 語言及系統的諸多特性,開始是簡單的語法、數據類型和表達式,接著介紹函數與模塊,最后涉及異常和自定義類這樣的高級內容。
- Python 入門指南
- 1. 開胃菜
- 2. 使用 Python 解釋器
- 2.1. 調用 Python 解釋器
- 2.2. 解釋器及其環境
- 3. Python 簡介
- 3.1. 將 Python 當做計算器
- 3.2. 編程的第一步
- 4. 深入 Python 流程控制
- 4.1. if 語句
- 4.2. for 語句
- 4.3. range() 函數
- 4.4. break 和 continue 語句, 以及循環中的 else 子句
- 4.5. pass 語句
- 4.6. 定義函數
- 4.7. 深入 Python 函數定義
- 4.8. 插曲:編碼風格
- 5. 數據結構
- 5.1. 關于列表更多的內容
- 5.2. del 語句
- 5.3. 元組和序列
- 5.4. 集合
- 5.5. 字典
- 5.6. 循環技巧
- 5.7. 深入條件控制
- 5.8. 比較序列和其它類型
- 6. 模塊
- 6.1. 深入模塊
- 6.2. 標準模塊
- 6.3. dir() 函數
- 6.4. 包
- 7. 輸入和輸出
- 7.1. 格式化輸出
- 7.2. 文件讀寫
- 8. 錯誤和異常
- 8.1. 語法錯誤
- 8.2. 異常
- 8.3. 異常處理
- 8.4. 拋出異常
- 8.5. 用戶自定義異常
- 8.6. 定義清理行為
- 8.7. 預定義清理行為
- 9. 類
- 9.1. 術語相關
- 9.2. Python 作用域和命名空間
- 9.3. 初識類
- 9.4. 一些說明
- 9.5. 繼承
- 9.6. 私有變量
- 9.7. 補充
- 9.8. 異常也是類
- 9.9. 迭代器
- 9.10. 生成器
- 9.11. 生成器表達式
- 10. Python 標準庫概覽
- 10.1. 操作系統接口
- 10.2. 文件通配符
- 10.3. 命令行參數
- 10.4. 錯誤輸出重定向和程序終止
- 10.5. 字符串正則匹配
- 10.6. 數學
- 10.7. 互聯網訪問
- 10.8. 日期和時間
- 10.9. 數據壓縮
- 10.10. 性能度量
- 10.11. 質量控制
- 10.12. “瑞士軍刀”
- 11. 標準庫瀏覽 – Part II
- 11.1. 輸出格式
- 11.2. 模板
- 11.3. 使用二進制數據記錄布局
- 11.4. 多線程
- 11.5. 日志
- 11.6. 弱引用
- 11.7. 列表工具
- 11.8. 十進制浮點數算法
- 12. 接下來?
- 13. 交互式輸入行編輯歷史回溯
- 13.1. 行編輯
- 13.2. 歷史回溯
- 13.3. 快捷鍵綁定
- 13.4. 其它交互式解釋器
- 14. 浮點數算法:爭議和限制
- 14.1. 表達錯誤
- 15. 附錄
- 15.1. 交互模式