Python是一種功能強大的解釋執(zhí)行自動編譯的動態(tài)型語言,面向?qū)ο蟮耐瑫r還支持面向過程的編程,有靈活方便數(shù)據(jù)結(jié)構(gòu),擁有大量優(yōu)秀的模塊,語法清晰、簡潔,而且可以在眾多的平臺上運行,非常適合于完成各種高層任務(wù)。目前,基于這種語言的相關(guān)技術(shù)正在飛速的發(fā)展,用戶數(shù)量急劇擴大,鑒于此,從本文開始筆者將向讀者陸續(xù)介紹Python編程的有關(guān)知識。雖然Python能支持多種平臺,但是我們這里以Windows系統(tǒng)作為我們的工作平臺?,F(xiàn)在,我們先從準備工作開始做起吧!
一、安裝Python
安裝Python時,既可以從源代碼安裝,也可以用已經(jīng)編譯并打包好的二進制版本來安裝。顯然,后者較為簡單,它的安裝程序可以從Web站點http://www.python.org免費下載,對于Windows系統(tǒng)而言,當前最新的安裝包為Python-2.5.2.msi。下載后,直接雙擊便可以按照提示安裝了,非常簡單。
二、使用Python解釋器
對于初學(xué)者來說,可以簡單的把Python的解釋器看成是一個“代辦”:我們把要做的事情用這個“代辦”能聽懂的話告訴它,然后它就會按照我們的吩咐完成相應(yīng)的工作。注意,要告訴Python做哪些事情的方法是使用Python指令,即語句;我們既可以一步一步的告訴它,Python的解釋器會一句一句地解釋執(zhí)行;也可以把要執(zhí)行的語句一股腦地放到一個文件(即Python程序文件)中,這些文件通常以.py文件的形式出現(xiàn),這時Python的解釋器會按順序執(zhí)行這種文件中的所有語句。上面所說的的““代辦”能聽懂”則意味著要符合Python的語法,這些語法我們會在后面的文章中逐步講解。
現(xiàn)在我們以慣用的“Hello,world!”為例開始我們的Python之旅。安裝Python后,您可以從“開始”菜單→“所有程序”→“Python 2.5”→“Python(command line)”來啟動Python解釋器。但是這樣做有些麻煩,所以建議讀者到Python的安裝目錄下,在Python圖標上單擊右鍵,在彈出的菜單中選擇“創(chuàng)建快捷方式”(見圖1),之后把建立的快捷方式圖標復(fù)制到桌面上,之后用起來就會方便多了。
啟動解釋器后,我們可以直接在其提示符(Python的提示符是>>>)后輸入下面一句:
print ‘Hello,world!’
我想讀者已經(jīng)猜到了,這句話是讓Python在屏幕上顯示“Hello,world!”。按回車鍵后,屏幕上的輸出情況如圖2所示:
我相信,很多使用C語言編程的人看了之后一定覺得很別扭,因為這看起來一點都不像是在編程,簡直就是在使用計算器。實際上Python解釋器用起來的確有點像是“計算器”,比如在提示符后輸入下面一句:
print 8+8
這時解釋器的輸出情況,如圖3所示
那好,既然這樣我們就換一種更像編程的方式來完成這個最簡單的編程任務(wù)。
三、程序“Hello,world!”
首先,打開記事本,在其中鍵入以下語句:
#Printing a line of text
print 'Hello,world!'
然后,將這個文件另存為hello.py。注意這里的后綴,一般情況下都將Python程序文件的后綴定為.py。這個程序非常簡單,只有三行。我們先看第一行,它是以#開頭,這表示這一行是注釋。我們知道,在程序中加上必要的注釋是很重要的,一則可以幫助別人理解我們的程序,二則可以幫助我們?nèi)蘸蟮木S護,因為隨著時間的推移,當初寫的代碼的含義很可能會在記憶中淡忘,這時原先的注釋會帶來莫大的幫助。
像這樣以#開頭的注釋稱為單行注釋,它的特點是注釋在本行的末尾結(jié)束。不過,單行注釋不僅可以起始于行首,也可以起始于一行的中間部位,比如跟在代碼的后面對該行的代碼進行注解。但是無論如何,Python都不會把它轉(zhuǎn)換成實際的操作。
在注釋行之后,是一個空行。我們可以在不同功能的代碼段之間用空行加以分隔,這里使用空行把注釋部分和代碼部分隔開,這樣會程序的可讀性更強。
第3行是本程序的主角,一個print語句,它的作用是讓計算機顯示引號之間的字符串。字符串,顧名思義,就是一串字符,不過這些字符是有其順序的。注意,這里的句尾不像C語言那樣以分號“;”作為結(jié)束符,Python的語句末尾什么也不加。和注釋行不同,這一行會被Python轉(zhuǎn)換成實際的操作,那就是在屏幕上顯示一行文字:“Hello,world”,如下圖所示,您會發(fā)現(xiàn)print語句中的引號并不在輸出之列。
四、運行程序
要想運行Python程序,可以在Dos提示符下切換到Python程序文件所在目錄,就上例而言,因為我們的示例程序位于C:\python25\test目錄下,可以用下列命令:
cd C:\python25\test
然后,在命令提示符下輸入python,后跟要執(zhí)行的程序名即可,如要運行hello.py,可以使用以下命令:
python hello.py
程序運行情況見圖4。
迄今為止,我們已經(jīng)使用了兩種不同的方式來執(zhí)行Python的語句了。第一種方式是使最先介紹的直接在解釋器中輸入語句來執(zhí)行,這種交互模式一次只能一個語句,見圖2。第二種方式是把要執(zhí)行的語句放進一個后綴名為.py的文件中,然后讓Python解釋器來執(zhí)行文件中的代碼,見圖4。對于第二種方式,Python解釋器執(zhí)行存放在文件中的代碼時,會從文件的第一行開始,一行接一行地往下解釋并執(zhí)行,直到文件結(jié)束為止。
五、解釋執(zhí)行
上面談到了Python語句的兩種執(zhí)行方式,實際上,這兩種運行方式在本質(zhì)上是相同的,它們都是由解釋器來解釋執(zhí)行我們提供的Python語句。
這里所說的解釋執(zhí)行是相對于編譯執(zhí)行而言的。我們知道,使用諸如C或C++之類的編譯性語言編寫的程序可以從源文件轉(zhuǎn)換成計算機使用的機器語言,經(jīng)連接器連接后形成二進制可執(zhí)行文件。當我們運行二進制可執(zhí)行程序的時候,因為已經(jīng)編譯好了,所以加載器軟件把二進制程序從硬盤載入內(nèi)存中并運行。
與之不同,Python語言寫的程序不需要編譯成二進制代碼,它可以直接從源代碼運行程序。當我們運行Python文件程序的時候,Python解釋器把源代碼轉(zhuǎn)換成中間形式:字節(jié)碼,然后再由Python虛擬機來執(zhí)行這些字節(jié)碼,如圖5所示。這樣的話,我們就用不著擔心程序的編譯,庫的連接加載等問題了,所有這些工作都由Python虛擬機代勞了。
對于Python的解釋語言特性,我們要一分為二的看待。一方面,每次運行時都要進行轉(zhuǎn)換成字節(jié)碼,然后再由虛擬機把字節(jié)碼轉(zhuǎn)換成機器語言,最后才能在硬件上運行。較之于編譯性編程語言,每次運行都會多出兩道工序,所以它的性能會受到影響。另一方面,由于不用關(guān)心程序的編譯以及庫的連接等問題,所以開發(fā)工作會變得更輕松;同時虛擬機距離物理機器更遠了,所以Python程序更加易于移植,實際上無需改動就能在多種平臺上運行。
六、小結(jié)
本文向讀者介紹了Python的安裝和解釋器的使用,同時用最常見的“Hello,world!”示例程序向讀者講解了Python程序的編寫和運行。最后對Python的解釋執(zhí)行特性做了簡單的介紹。讀者可能已經(jīng)發(fā)現(xiàn),Python編程很簡潔,也很容易上手,至于更多的內(nèi)容,我們會在后續(xù)的文章中陸續(xù)加以介紹。