1. 課前甜點(diǎn)?

如果你經(jīng)常在電腦上工作,總會(huì)有些任務(wù)會(huì)想讓它自動(dòng)化。比如,對(duì)一大堆文本文件進(jìn)行查找替換,對(duì)很多照片文件按照比較復(fù)雜的規(guī)則重命名并放入不同的文件夾。也可能你想寫一個(gè)小型的數(shù)據(jù)庫(kù)應(yīng)用,一個(gè)特定的圖形界面應(yīng)用,或者一個(gè)簡(jiǎn)單的游戲。

如果你是專業(yè)的軟件開發(fā)人員,你可能需要編寫一些 C/C++/Java 庫(kù),但總覺(jué)得通常的 編寫、編譯、測(cè)試、再次編譯 流程太慢了??赡芙o這樣的庫(kù)寫一組測(cè)試,就是很麻煩的工作了?;蛟S你寫了個(gè)軟件,可以支持插件擴(kuò)展語(yǔ)言,但你不想為了自己這一個(gè)應(yīng)用,專門設(shè)計(jì)和實(shí)現(xiàn)一種新語(yǔ)言了。

那么,Python 正好能滿足你的需要。

對(duì)于這些任務(wù),你也可以寫 Unix shell 腳本或者 Windows 批處理完成,但是 shell 腳本最擅長(zhǎng)移動(dòng)文件和替換文本,并不適合 GUI 界面或者游戲開發(fā)。你可以寫一個(gè) C/C++/Java 程序,但是可能初稿都要很長(zhǎng)的開發(fā)時(shí)間。Python 的使用則更加簡(jiǎn)單,可以在 Windows,Mac OS X,以及 Unix 操作系統(tǒng)上使用,而且可以幫你更快地完成工作。

Python 很容易使用,但它是一種真正的編程語(yǔ)言,提供了很多數(shù)據(jù)結(jié)構(gòu),也支持大型程序,遠(yuǎn)超 shell 腳本或批處理文件的功能。Python 還提供比 C 語(yǔ)言更多的錯(cuò)誤檢查,而且作為一種 “超高級(jí)語(yǔ)言”,它有高級(jí)的內(nèi)置數(shù)據(jù)類型,比如靈活的數(shù)組和字典。正因?yàn)檫@些更加通用的數(shù)據(jù)類型,Python 能夠應(yīng)付更多的問(wèn)題,超過(guò) Awk 甚至 Perl,而且很多東西在 Python 中至少和那些語(yǔ)言同樣簡(jiǎn)單。

Python 允許你將程序劃分為能在其他的 Python 程序中重復(fù)利用的模塊。它內(nèi)置了很多的標(biāo)準(zhǔn)模塊,你可以在此基礎(chǔ)上開發(fā)程序——也可以作為例子,開始學(xué)習(xí) Python 編程。例如,一切內(nèi)置模塊提供諸如文件輸入輸出、系統(tǒng)調(diào)用、套接字、甚至圖形界面接口工作包比如 Tk。

Python 是一種解釋型語(yǔ)言,在程序開發(fā)階段可以為你節(jié)省大量時(shí)間,因?yàn)椴恍枰幾g和鏈接。解釋器可以交互式使用,這樣就可以方便地嘗試語(yǔ)言特性,寫一些一次性的程序,或者在自底向上的程序開發(fā)中測(cè)試功能。它也是一個(gè)順手的桌面計(jì)算器。

Python 程序的書寫是緊湊而易讀的。Python 代碼通常比同樣功能的 C,C++,Java 代碼要短很多,有如下幾個(gè)原因:

  • 高級(jí)數(shù)據(jù)類型允許在一個(gè)表達(dá)式中表示復(fù)雜的操作;

  • 代碼塊的劃分是按照縮進(jìn)而不是成對(duì)的花括號(hào);

  • 不需要預(yù)先定義變量或參數(shù)。

Python 是 “可擴(kuò)展的”:如果你知道怎么寫 C 語(yǔ)言程序,就能很容易地給解釋器添加新的內(nèi)置函數(shù)或模塊,不論是讓關(guān)鍵的操作以最高速度運(yùn)行,還是把 Python 程序鏈接到只提供預(yù)編譯程序的庫(kù)(比如硬件相關(guān)的圖形庫(kù))。一旦你真正鏈接上了,就能在 Python 解釋器中擴(kuò)展或者控制 C 語(yǔ)言編寫的應(yīng)用了。

順便提一下,這種語(yǔ)言的名字(python 一詞直譯為 “蟒蛇”)得名自 BBC 節(jié)目 “Monty Python的飛行馬戲團(tuán)” ,而與爬行動(dòng)物沒(méi)有關(guān)系。在文檔中用 Monty Python 來(lái)開玩笑不只是被允許的,還是被推薦的!

現(xiàn)在你已經(jīng)對(duì) Python 躍躍欲試了,想要深入了解一些細(xì)節(jié)了。因?yàn)閷W(xué)習(xí)語(yǔ)言的最佳方式是使用它,本教程邀請(qǐng)你一邊閱讀,一邊在 Python 解釋器中玩耍。

在下一章節(jié),會(huì)講解使用解釋器的方法??雌饋?lái)相當(dāng)枯燥,但是對(duì)于嘗試后續(xù)的例子來(lái)說(shuō),是非常關(guān)鍵的。

教程的其他部分將通過(guò)示例介紹 Python 語(yǔ)言和系統(tǒng)中的不同功能,開始是比較簡(jiǎn)單的表達(dá)式、語(yǔ)句和數(shù)據(jù)類型,然后是函數(shù)和模塊,最終接觸一些高級(jí)概念,比如異常、用戶定義的類。