第一章 介紹
指令碼語言是類似DOS批處理、UNIX shell程式的語言。指令碼語言不需要每次編譯再執行,並且在執行中可以很容易地訪問正在啟動並執行程式,甚至可以動態地修改正在啟動並執行程式,適用於快速地開發以及完成一些簡單的任務。在使用指令碼語言時常常需要增的新的功能,但有時因為指令碼語言本來就已經很慢、很大、很複雜了而不能實現;或者,所需的功能涉及只能用C語言提供的系統調用或其他函數——通常所要解決的問題沒有重要到必須用C語言重寫的程度;或者,解決問題需要諸如可變長度字串等資料類型(如檔案名稱的有序列表),這樣的資料類型在指令碼語言中十分容易而C語言則需要很多工作才能實現;或者,編程者不熟悉C語言:這些情況下還是可以使用指令碼語言的。
在這樣的情況下,Python可能正好適合你的需要。Python使用簡單,但它是一個真正的程式語言,而且比shell提供了更多結構和對大型程式的支援。另一方面,它比C提供更多的錯誤檢查,它是一個非常進階的語言,內建了各種進階資料結構,如靈活的數組和字典,這些資料結構要用C高效實現的話可能要花費你幾天的時間。由於Python具有更一般的資料結構,它比Awk甚至Perl適用的範圍都廣,而許多東西在Python內至少和在這些語言內一樣容易。
Python允許你把程式分解為模組,模組可以在其他Python程式中重用。它帶有一大批標準模組可以作為你自己的程式的基礎——或作為學習Python編程的例子。系統還提供了關於檔案輸入輸出、系統調用、插座(sockets)的東西,甚至提供了視窗系統(STDWIN)的通用介面。
Python是一個解釋性語言,因為不需要編譯和串連所以能節省大量的程式開發時間。解釋程式可以互動使用,這樣可以可以很容易地實驗語言的各種特色,寫只用一次的程式,或在從底向上程式開發中測試函數。它也是一個方便的計算機。
Python允許你寫出非常嚴謹而且可讀的程式。用Python寫的程式通常都比相應的C程式要短,因為如下幾個理由:
進階的資料結構允許你用一個語句表達複雜的操作;
複合陳述式是靠縮排而不是用表示開始和結束的括弧;
不需要變數聲明或參量聲明。
Python是可擴充的:如果你會用C語言編程就很容易為解釋程式增加新的內建函數或模組,這樣可以以最快速度執行關鍵操作,或把Python程式和只能以二進位碼提供的庫(如不同廠商提供的圖形庫)串連起來。當你變得確實很在行時你可以把Python解譯器與用C寫的應用相串連,把它作為該應用的擴充或命令語言。
Python的命名是由BBC的“Monty Python's Flying Circus”節目而得,與蟒蛇沒有什麼關係。