標籤:
如果你經常性的需要用電腦去做一些事情,這些事情中大部分情況可能是經常重複性的或者是枯燥的,最終(eventually)你會想讓這些任務(task)實現自動化(automate)。例如,你可能希望在一個大的文字檔中執行一些類似於搜尋替換或者是重新命名,可能你還希望對一堆(a bunch of )照片檔案使用一種相對複雜(complicated)的方式進行重新排列(rearrange),或者你更加鐘情於自己實現一個小型的用戶端資料庫(custom database),或者一個專業的(specialized)圖形化應用程式,或者是一個簡單的遊戲。
如果你是一個專業的(professional)軟體開發人員,你可能會同多個c/c++/java庫打交道,但是你會發現常規的(usual)編寫-->編譯-->測試-->再編譯的往複迴圈過程太慢了。假定(perhaps)你自己已經為這些庫寫好了一個測試套件(test suite),但是發現寫這些測試代碼是一個枯燥(tedious)的任務,或者可能你已經寫好了一個程式,它可以使用一種擴充語言,但是你沒有必要去為你的這個應用去設計和實現(implement)一個全新的語言。
那麼,python正是你所需要的那種語言!
當然了,你也可以為一些任務在linux下寫一個shell指令碼或者在windows寫一個批次檔(batch files),但是shell指令碼主要適用於處理類似移動檔案(moving around files)和改變文本資料方面,在圖形介面應用和遊戲方面不太適用(not well-suited)。同樣的,你也可以寫一個c/c++/java的程式來做對應的工作,但是即使是你想得到一個程式的測試版也會耗費你大量的開發時間(development time)。那麼python在這方面就很簡單並且適用(simple and use),python可以工作在windows平台下、mac 平台下和類Unix 作業系統上,它可以協助你快速且容易的完成你的工作(get the job done more quickly)。
python雖然上手簡單,但是它卻是一門真正的程式設計語言,它相對shell指令碼和批次檔,python提供更多的(much more)結構(structure)同時支援大型的程式。在另一方面,相對於c而言python提供更多的錯誤偵測和處理方式,這使得python也成為了一門進階語言(very-high-level language),它內建了進階的資料類型,例如靈活的(flexible)的數組和字典。由於它包含大量的常見(general)資料類型,這使得python相比Awk,python可以應用(applicable)在一些大型的問題領域中,有時候甚至可以和Perl相比較,至少相對比其它程式設計語言,使用python在處理很多事情的時候會相對容易一些。
python允許你把你的程式分割成模組,然後在其它的python程式中去複用它們,而且也推薦你這麼做。python提供了一個包含大量的標準(standard)模組集合,你可以使用這些模組作為你的程式的基礎,同樣的你可以把這些模組當做學習如何使用python進行編程的例子。這些標準模組提供了像檔案I/O處理、系統調用、socket編程,甚至還包括可以提供圖形化使用者介面介面的工具包(toolkits)例如Tk。
python是一門解釋型語言,這樣它就可以幫組你節省(save)大量的(considerable)開發時間,因為它不需要(necessary)編譯和連結。python的解譯器同樣可以在互動模式下使用(used interactively),這就使得你可以輕鬆的去嘗試(experiment)一下python的語言特性(features of the language),或者是寫一個隨時可以丟棄(throw-away)的程式,或者在採用自底向上(bottom-up)的程式開發模式的時候可以用來測試一些方法。哈,同樣的,這也是你的一個方便的(handy)案頭計算機(calculator)。
python希望程式可以採用簡潔(compactly)且易讀(readably)的方式編寫。使用Python編寫的程式,相對於其它像c、c++、java等編寫的程式要簡短的很多,主要要以下幾個原因:
1,內建的進階的資料類型,允許當你想表達(express)一些複雜(complex)的操作的時候可以採用一種簡單的聲明(statement)來替代
2,採用縮排(indentation)的方式來聲明程式碼片段或者組,而非採用常規的開始、結束方括弧(brackets)
3,變數及參數在使用前必須要聲明(declarations)不再是必須的
python是可被擴充的。如果你知道如何編寫C程式,那麼就可以非常容易的為python解譯器新增一個內建的方法或者模組,也可以採用最快速度(maximum speed)去執行(perform)一些關鍵性的操作(critical operations),或者在庫中去連結python程式,那麼這種方式只有在二進位格式下才是被啟動並執行(例如像作業系統平台廠商特定(vendor-specific)的圖形渲染庫)。一旦你真正的連結成功,那麼這時你就可以在你的C程式編寫的應用中去連結python解譯器,然後把它當做是一個擴充或者是命令列程式設計語言。
順便一提的是關於python命名的來源,python之所以被命名為python是因為美國BBC播出的一檔節目Monty Python的飛行馬戲團(Monty Python‘s Flaying Circus(馬戲團)),而並非和任何的爬行動物(reptiles)有關。在文檔中以Monty Python這種短劇(skits)作為參考(Making reference)不僅僅是被允許,而且還是被鼓勵(encouraged)這麼做的!
現在,你已經對Python產生了一種興奮(excited),你想馬上去嘗試一下(examine)更多的有關python的細節(detail)。學習一門語言最好的方式就是去使用它,在手冊中的入門指引這一章節就是邀請你在命令列下去和python解譯器玩耍,開啟你的學習之旅!
在下一個章節裡,將會為你解釋(explained),在你的機器上怎麼樣去使用python的解譯器。這也是(rather)一份相對簡單的(mundane)文檔資訊,但是在文檔的最後會附上一些精華類的要點(essential)案例供你去練習。
手冊中入門指引這一章節,通過一些案例介紹(introduces)了關於python語言和系統的各種各樣的(various)特性,從簡單的運算式(expressions),語句塊(statements)和資料類型,然後到方法和模組,並且最終可以接觸到(touching upon)進階的特性(advanced concepts)像異常和自訂類等。
The Python Tutorial 之 Whetting Your Appetite