小段落


1. 開胃菜

如果你曾經寫過大型的shell script,你大概能了解那種感覺:你想要新增加一個功能,但是這個script已經實在有夠大夠慢夠複雜的了,或者說,你想要加入的新功能需要呼叫系統功能或是其他函數,但是這些功能/函數只有C才能呼叫。你要解決的問題好像並沒有嚴重到要重新用C來寫整個程式,或者有些問題因為要用到可變長度的字串或是特別的資料結構(像是用排序過的檔案名稱組成序列(list)),用C來寫實在比shell麻煩的太多,又或者是你根本不是對C很熟。

另外一個情境是這樣的:也許你要使用好幾個C的程式庫,但是標準開發C程式的過程(寫/編譯/測試/重新編譯)實在太花時間,你需要能快速的開發好軟體。又或者你已經些好一個應用程式,這個程式可以使用一個延伸的語言來控制。你不想創造一種語言,然後還得寫好這個語言的編譯器,還得把這個編譯器跟你的程式放在一起。

在這些情況之下,Python也許正是你所需要的語言。Python雖然簡單,卻是不折不扣的程式語言。對大型的程式來說,它比起shell能提供更多的結構性及支援。另外一方面,它也提供了比C語言更多的錯誤檢查。由於Python是一個非常高階的語言,所以它有許多內建的資料型態像是有彈性的陣列及字典(dictionary)等等,如果用C來做的話得花上你大半天的時間。正是因為Python有較為一般性的資料型態,Python可以應用的範圍比起awk甚或是Perl要廣的很多,最起碼,Python跟這些語言一樣容易開發。

Python的另外一個特點就是可以將程式切成小模組,然後這些模組還可以應用在其他的程式之中。Python本身也有一個相當大的標準模組庫可以讓你來使用,或者當作學習Python程式設計的範例。在Python中也有內建的模組可以提供許多功能,諸如:檔案I/O、系統呼叫、sockets,甚至是與Tk之類的GUI工具互動的介面。

Python是一個直譯式的語言,可以省掉你在開發程式時不少編譯及連結程式的時間。這個Python的直譯器甚至可以互動式的使用,讓你在寫一些小程式來試驗Python語言的特性,或是測試程式時可以寫節省不少時間。你還可以用Python直譯器來當作計算機呢。

Python讓你可以寫出非常精練及可讀性高的程式。用Python寫出的程式通常比用C或C++寫的程式要短得多,其理由如下:

Python 是延伸性高的語言。如果你知道如何寫C語言的程式的話,你很容易就可以在Python的直譯器中加入新的內建函數(function)或是模組,這樣做的好處是你可以讓程式中關鍵的部分速度調到最快,或者是連結Python到binary的程式庫(例如是廠商做好的圖形程式庫)去。一但你真的需要,你也可以把Python直譯器加入到你用C寫的應用程式裡面去,然後Python就變成你的應用程式的延伸或是商業化的語言了。

另外一提的是,這個程式的命名由來是源自於BBC著名的節目``Monty Python's Flying Circus'',跟其他噁心的爬蟲類沒有任何關係。如果你的文件中要提到Monty Python的話,不但照准,而且還相當鼓勵。


1.1 然後呢

現在你應該對Python感到有一些興趣了吧,接下來你將看到比較多的的細節討論。學習語言的最好途徑是使用之,趕快動手吧。

在下一章我們將討論到如何使用Python的直譯器,雖然相當的普通,但是如果你要嘗試一下之後的範例的話,這是重要的基礎。

本教學文件的其餘部分將用許多的例子介紹Python語言的各種不同的特性,先從簡單的表示式(expressions)開始,將會談到敘述(statements)及資料型態,然後是函式(functions)及模組(module),最後會談到較高深的觀念像是例外情形(exceptions)及使用者自訂的類別(user-defined classes)等等。


請看關於此文件… 裡面有關如何給我們建議的說明。