第一部分 前言
J2Y S+%K 簡介: LeEv'] crvq]J5 Python是一種簡單易學(xué),功能強(qiáng)大的編程語言,它有高效率的高層數(shù)據(jù)結(jié)構(gòu),簡單而有效地實(shí)現(xiàn)面向?qū)ο缶幊獭ython簡潔的語法和對動態(tài)輸入的支持,再加上解釋性語言的本質(zhì),使得它在大多數(shù)平臺上的許多領(lǐng)域都是一個理想的腳本語言,特別適用于快速的應(yīng)用程序開發(fā)。
Ng,< 4; @a~GHG[x Python的特色: )y#~eYn QJ%[6S 簡單
&\p=s.y?j Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴(yán)格!Python的這種偽代碼本質(zhì)是它最大的優(yōu)點(diǎn)之一。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。
pVN) k ^.?5!9U 易學(xué)
Gm1[PAj 就如同你即將看到的一樣,Python極其容易上手。前面已經(jīng)提到了,Python有極其簡單的語法。
_(zPA4q8q ZIr&_x#e 免費(fèi)、開源
K. l7yBm Python是FLOSS(自由/開放源碼軟件)之一。簡單地說,你可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。FLOSS是基于一個團(tuán)體分享知識的概念。這是為什么Python如此優(yōu)秀的原因之一——它是由一群希望看到一個更加優(yōu)秀的Python的人創(chuàng)造并經(jīng)常改進(jìn)著的。
_VM()n; *wu:fb2[( 高層語言
?ypX``3#s7 當(dāng)你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。
PgMU|O7To }Kt1mmo:` 可移植性
tX'2 $} 由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。如果你小心地避免使用依賴于系統(tǒng)的特性,那么你的所有Python程序無需修改就可以在下述任何平臺上面運(yùn)行。
8?z7!k] g*-%.fNA 這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC!
appWq}db 2M$^|j:[ 解釋性
29tih{ xx 這一點(diǎn)需要一些解釋。
C;jV)hr6P ~M Mv+d88 一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計(jì)算機(jī)使用的語言(二進(jìn)制代碼,即0和1)。這個過程通過編譯器和不同的標(biāo)記、選項(xiàng)完成。當(dāng)你運(yùn)行你的程序的時候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行。
Ef2i#BoZ /kH 7I 而Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼 運(yùn)行 程序。在計(jì)算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語言并運(yùn)行。事實(shí)上,由于你不再需要擔(dān)心如何編譯程序,如何確保連接轉(zhuǎn)載正確的庫等等,所有這一切使得使用Python更加簡單。由于你只需要把你的Python程序拷貝到另外一臺計(jì)算機(jī)上,它就可以工作了,這也使得你的Python程序更加易于移植。
/+JHnedK ~/l5ys 面向?qū)ο?
`JzP V/6 Python即支持面向過程的編程也支持面向?qū)ο蟮木幊獭T?面向過程 的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在 面向?qū)ο?的語言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強(qiáng)大又簡單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?span style="DISPLAY: none"> q .s'z}
kkU#0p?7 可擴(kuò)展性
%*a%F~Ss 如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們。
7 ?"-:q )z!#8s 可嵌入性
'BX U ' 你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
.kc{)d*0K N~vK8j@ 豐富的庫
^KUM4. 6 Python標(biāo)準(zhǔn)庫確實(shí)很龐大。它可以幫助你處理各種工作,包括正則表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的“功能齊全”理睢?
Q5 = 除了標(biāo)準(zhǔn)庫醞猬還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。
oD 3Q{ e ;nw}x4Y[ ~F 13}is 第二部分 安裝編譯環(huán)境 Lm7fz9F% :Fdk`aC Xp~O?2:3l 注:由于linux系統(tǒng)本身都集成Python,本部分主要針對windows的調(diào)試環(huán)境 ]~7xq)28 (``|5;T\ 可以從
www.Python.org/download下載到。安裝過程與其他Windows軟件類似。
X;d 1@ G +?+iVLr!l} 提示
4_w{~ 即便安裝程序?yàn)槟闾峁┝瞬粰z查 可選 組件的選項(xiàng),你也不要不作任何檢查!有些組件對你很有用,特別是集成開發(fā)環(huán)境。
%$=}ePD U}SN#[* 在Windows命令行中使用Python
M (.Up 如果你想要從Windows命令行調(diào)用Python,那么你需要先正確的設(shè)置PATH變量。
3/*<i B8 R&Q8Q 對于Windows 2000、XP、2003,點(diǎn)擊控制面板->系統(tǒng)->高級->環(huán)境變量。在“系統(tǒng)變量”表單中點(diǎn)擊叫做PATH的變量,然后編輯這個變量,把;C:\Python23加到它的結(jié)尾。當(dāng)然,是Python所在的正確目錄名。
.h\[7r %$zX a%A U[c^xz& 第三部分 Hello World UYsyVY`Fm| 9Xeg &Z|! 對于Windows用戶,只要你正確的設(shè)置了PATH變量,你應(yīng)該可以從命令行啟動解釋器。或者你可以選擇使用IDLE程序。IDLE是集成開發(fā)環(huán)境的縮寫。點(diǎn)擊開始->程序->Python 2.3->IDLE(Python GUI)。Linux用戶也可以使用IDLE。
Un{9reX5 K) {\wV=" 注意,>>>是你鍵入Python語句的提示符。 afj[HJbY F!~oJ guk Ka $ python
-+Ab[ Python 2.3.4 (#1, Oct 26 2004, 16:42:40)
dEWI8Q] [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
Q:sw*7"F Type "help", "copyright", "credits" or "license" for more information.
2N[S*#~*e >>> print 'hello world'
'n0u6hCSb hello world
t&L+]I'P3 >>>
L>1i~c&V v35=4>Y 注意,Python會在下一行立即給出你輸出!你剛才鍵入的是一句Python 語句 。我們使用print(不要驚訝)來打印你提供給它的值。這里,我們提供的是文本Hello World,它被迅速地打印在屏幕上。
gdkQ h_\ _"R /k`8 如何退出Python提示符
5$.e5y<&( 如果你使用的是Linux/BSD shell,那么按Ctrl-d退出提示符。如果是在Windows命令行中,則按Ctrl-z再按Enter。
I# U"DwM /3ty*LQT WfF~\DlrD 第四部分 選一個編輯器 s 8 c#_ krI@N}OU 'ZboLoS*- 在我們開始講述以源文件方式編寫Python程序之前,我們需要一個編輯器來寫源文件。挑選一個編輯器確實(shí)是極其重要的。你挑選一個編輯器就如同你挑選一輛你將購買的轎車一樣。一個好的編輯器會幫助你方便地編寫Python程序,使你地編程旅程更加舒適,幫助你更加快捷安全地到達(dá)目的地(實(shí)現(xiàn)目標(biāo))。
AYnk.H-v 8M&q 對于編輯器的基本要求之一是語法加亮功能,利用這一功能,你的Python程序的不同部分被標(biāo)以不同的顏色,這樣你可以更好 看清楚 你的程序,使它的運(yùn)行顯得形象化。
Ns} BE H d=v{3*a_4, 如果你使用Windows,那么我建議你使用IDLE。IDLE具備語法加亮功能,還有許多其他的功能,比如允許你在IDLE中運(yùn)行你的程序。特別值得注意的是:不要使用Notepad——它是一個糟糕的選擇,因?yàn)樗鼪]有語法加亮功能,而且更加重要的是,它不支持文本縮進(jìn)。而我們將會看到文本縮進(jìn)對于我們來說極其重要。一個好的編輯器,比如IDLE(還有VIM)將會自動幫助你做這些事情。
PZjK 6]N\ S_ELV#X 如果你使用Linux/FreeBSD,那么你有很多種選擇。如果你是一位有經(jīng)驗(yàn)的程序員,你一定已經(jīng)在使用VIM或者Emacs了。勿庸置疑,它們是兩個功能最強(qiáng)大的編輯器。使用它們編寫你的Python程序,你將從中受益。我個人使用VIM編寫我的大多數(shù)程序。如果你是一個初學(xué)編程的人,那么你可以使用Kate,它也是我最喜歡的編輯器之一。只要你愿意花時間學(xué)習(xí)使用VIM或Emacs,那么我強(qiáng)烈建議你一定要學(xué)習(xí)兩者之一,因?yàn)閺拈L遠(yuǎn)看來它們對你是極其有幫助的。
Un.u{$po A<$w }Fy; 如果你還想尋找一下其他可供選擇的編輯器,可以看一下詳盡的Python編輯器列表,然后作出你的選擇。你也可以使用Python的IDE(集成開發(fā)環(huán)境)。請看一下詳盡的支持Python的IDE列表以獲得詳盡的信息。一旦你開始編寫大型的Python程序,IDE確實(shí)很有用。
|_GESpoHH $(=0J*ND" 我再一次重申,請選擇一個合適的編輯器——它能使編寫Python程序變得更加有趣、方便。
s-"oT= aSVR +of 注:我們寫L2J任務(wù)腳本用windows記事本即可
4;D>s8dgG =`W#R r0L' mf$ 746['sf4c 第五部分 源文件編譯 /)/>/4O `Dp_c&9] >m'n#=yap 使用源文件
r[W Ir|r7 現(xiàn)在讓我們重新開始編程。當(dāng)你學(xué)習(xí)一種新的編程語言的時候,你編寫運(yùn)行的第一個程序通常都是“Hello World”程序,這已經(jīng)成為一種傳統(tǒng)了。在你運(yùn)行“Hello World”程序的時候,它所做的事只是說聲:“Hello World”。正如提出“Hello World”程序的Simon Cozens[1]所說:“它是編程之神的傳統(tǒng)咒語,可以幫助你更好的學(xué)習(xí)語言。”
rcU*6`IWA v FW g0 $, 啟動你選擇的編輯器,輸入下面這段程序,然后把它保存為helloworld.py。
w6<zPrA .F^372hH3 例3.2 使用源文件
_]6n]koD, H%G|8,4 #!/usr/bin/python
=niT]xf # Filename : helloworld.py
o3,}X@p print 'Hello World'
tr@)zM GB 7;3;8Q FX (源文件:code/helloworld.py)
Sgq" 3(+%, {vox x&UX 為了運(yùn)行這個程序,請打開shell(Linux終端或者DOS提示符),然后鍵入命令python helloworld.py。如果你使用IDLE,請使用菜單Edit->Run Script或者使用鍵盤快捷方式Ctrl-F5。輸出如下所示。
|<!xD iB |{9&!=/qf 輸出
4`'V%)M $ python helloworld.py
O~4Q:#^c Hello World
OCv,EZ Rgb&EnVW 如果你得到的輸出與上面所示的一樣,那么恭喜!——你已經(jīng)成功地運(yùn)行了你的第一個Python程序。
fR#W#n#m L!0}&i;u~5 萬一你得到一個錯誤,那么請確保你鍵入的程序 準(zhǔn)確無誤 ,然后再運(yùn)行一下程序。注意Python是大小寫敏感的,即print與Print不一樣——注意前一個是小寫p而后一個是大寫P。另外,確保在每一行的開始字符前沒有空格或者制表符——我們將在后面討論為什么這點(diǎn)是重要的。
Iwe >/G[Oo 它如何工作
Xh@;4n 讓我們思考一下這個程序的前兩行。它們被稱作 注釋 ——任何在#符號右面的內(nèi)容都是注釋。注釋主要作為提供給程序讀者的筆記。
1^tM%2rP' Xa_:B\ic Python至少應(yīng)當(dāng)有第一行那樣的特殊形式的注釋。它被稱作 組織行 ——源文件的頭兩個字符是#!,后面跟著一個程序。這行告訴你的Linux/Unix系統(tǒng)當(dāng)你 執(zhí)行 你的程序的時候,它應(yīng)該運(yùn)行哪個解釋器。這會在下一節(jié)做詳細(xì)解釋。注意,你總是可以通過直接在命令行指定解釋器,從而在任何平臺上運(yùn)行你的程序。就如同命令python helloworld.py一樣。
h(p c GE uoTc c|Kc 重要
E&>;a!0b] 在你的程序中合理地使用注釋以解釋一些重要的細(xì)節(jié)——這將有助于你的程序的讀者輕松地理解程序在干什么。記住,這個讀者可能就是6個月以后的你!
W4"1H0s`l {EJ+ 跟在注釋之后的是一句Python 語句 ——它只是打印文本“Hello World”。print實(shí)際上是一個操作符,而“Hello World”被稱為一個字符串——別擔(dān)心我們會在后面詳細(xì)解釋這些術(shù)語