我們將看一下如何用 Python 編寫運(yùn)行一個傳統(tǒng)的“Hello World”程序。通過它,你將學(xué)會如何編寫、保存和運(yùn)行 Python 程序。
有兩種使用 Python 運(yùn)行你的程序的方式——使用交互式的帶提示符的解釋器或使用源文件。我們將學(xué)習(xí)這兩種方法。
在命令行的 shell 提示符下鍵入 python,啟動解釋器?,F(xiàn)在輸入 print 'Hello World',然后按 Enter 鍵。你應(yīng)該可以看到輸出的單詞 Hello World。
對于 Windows 用戶,只要你正確的設(shè)置了 PATH 變量,你應(yīng)該可以從命令行啟動解釋器。或者你可以選擇使用 IDLE 程序。IDLE 是集成開發(fā)環(huán)境的縮寫。點(diǎn)擊開始->程序->Python 2.3->IDLE(Python GUI)。Linux 用戶也可以使用 IDLE。
注意,>>>是你鍵入 Python 語句的提示符。
例 3.1 使用帶提示符的 Python 解釋器
$ python
Python 2.3.4 (#1, Oct 26 2004, 16:42:40)
[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'hello world'
hello world
>>>
注意,Python 會在下一行立即給出你輸出!你剛才鍵入的是一句 Python 語句 。我們使用 print(不要驚訝)來打印你提供給它的值。這里,我們提供的是文本 Hello World,它被迅速地打印在屏幕上。
如何退出 Python 提示符 如果你使用的是 Linux/BSD shell,那么按 Ctrl-d 退出提示符。如果是在 Windows 命令行中,則按 Ctrl-z 再按 Enter。
在我們開始講述以源文件方式編寫 Python 程序之前,我們需要一個編輯器來寫源文件。挑選一個編輯器確實(shí)是極其重要的。你挑選一個編輯器就如同你挑選一輛你將購買的轎車一樣。一個好的編輯器會幫助你方便地編寫 Python 程序,使你地編程旅程更加舒適,幫助你更加快捷安全地到達(dá)目的地(實(shí)現(xiàn)目標(biāo))。
對于編輯器的基本要求之一是語法加亮功能,利用這一功能,你的 Python 程序的不同部分被標(biāo)以不同的顏色,這樣你可以更好 看清楚 你的程序,使它的運(yùn)行顯得形象化。
如果你使用 Windows,那么我建議你使用 IDLE。IDLE 具備語法加亮功能,還有許多其他的功能,比如允許你在 IDLE 中運(yùn)行你的程序。特別值得注意的是:不要使用 Notepad——它是一個糟糕的選擇,因為它沒有語法加亮功能,而且更加重要的是,它不支持文本縮進(jìn)。而我們將會看到文本縮進(jìn)對于我們來說極其重要。一個好的編輯器,比如 IDLE(還有 VIM)將會自動幫助你做這些事情。
如果你使用 Linux/FreeBSD,那么你有很多種選擇。如果你是一位有經(jīng)驗的程序員,你一定已經(jīng)在使用 VIM 或者 Emacs 了。勿庸置疑,它們是兩個功能最強(qiáng)大的編輯器。使用它們編寫你的 Python 程序,你將從中受益。我個人使用 VIM 編寫我的大多數(shù)程序。如果你是一個初學(xué)編程的人,那么你可以使用 Kate,它也是我最喜歡的編輯器之一。只要你愿意花時間學(xué)習(xí)使用 VIM 或 Emacs,那么我強(qiáng)烈建議你一定要學(xué)習(xí)兩者之一,因為從長遠(yuǎn)看來它們對你是極其有幫助的。
如果你還想尋找一下其他可供選擇的編輯器,可以看一下詳盡的 Python 編輯器列表,然后作出你的選擇。你也可以使用 Python 的 IDE(集成開發(fā)環(huán)境)。請看一下詳盡的支持 Python 的 IDE 列表以獲得詳盡的信息。一旦你開始編寫大型的 Python 程序,IDE 確實(shí)很有用。
我再一次重申,請選擇一個合適的編輯器——它能使編寫 Python 程序變得更加有趣、方便。
現(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í)語言?!?/p>
啟動你選擇的編輯器,輸入下面這段程序,然后把它保存為 helloworld.py。
例 3.2 使用源文件
#!/usr/bin/python
# Filename : helloworld.py
print 'Hello World'
(源文件:code/helloworld.py)
為了運(yùn)行這個程序,請打開 shell(Linux 終端或者 DOS 提示符),然后鍵入命令 python helloworld.py。如果你使用 IDLE,請使用菜單 Edit->Run Script 或者使用鍵盤快捷方式 Ctrl-F5。輸出如下所示。
輸出
$ python helloworld.py
Hello World
如果你得到的輸出與上面所示的一樣,那么恭喜!——你已經(jīng)成功地運(yùn)行了你的第一個 Python 程序。
萬一你得到一個錯誤,那么請確保你鍵入的程序 準(zhǔn)確無誤 ,然后再運(yùn)行一下程序。注意 Python 是大小寫敏感的,即 print 與 Print 不一樣——注意前一個是小寫 p 而后一個是大寫 P。另外,確保在每一行的開始字符前沒有空格或者制表符——我們將在后面討論為什么這點(diǎn)是重要的。
它如何工作
讓我們思考一下這個程序的前兩行。它們被稱作 注釋 ——任何在#符號右面的內(nèi)容都是注釋。注釋主要作為提供給程序讀者的筆記。
Python 至少應(yīng)當(dāng)有第一行那樣的特殊形式的注釋。它被稱作 組織行 ——源文件的頭兩個字符是#!,后面跟著一個程序。這行告訴你的 Linux/Unix 系統(tǒng)當(dāng)你 執(zhí)行 你的程序的時候,它應(yīng)該運(yùn)行哪個解釋器。這會在下一節(jié)做詳細(xì)解釋。注意,你總是可以通過直接在命令行指定解釋器,從而在任何平臺上運(yùn)行你的程序。就如同命令 python helloworld.py 一樣。
重要
在你的程序中合理地使用注釋以解釋一些重要的細(xì)節(jié)——這將有助于你的程序的讀者輕松地理解程序在干什么。記住,這個讀者可能就是 6 個月以后的你!
跟在注釋之后的是一句 Python 語句 ——它只是打印文本“Hello World”。print 實(shí)際上是一個操作符,而“Hello World”被稱為一個字符串——別擔(dān)心我們會在后面詳細(xì)解釋這些術(shù)語。
[1]一位最主要的 Perl6/Parrot 高手,轟動的《開始 Perl》一書的作者。
這部分內(nèi)容只對 Linux/Unix 用戶適用,不過 Windows 用戶可能也對程序的第一行比較好奇。首先我們需要通過 chmod 命令,給程序可執(zhí)行的許可,然后 運(yùn)行 程序。
$ chmod a+x helloworld.py
$ ./helloworld.py
Hello World
chmod 命令用來 改變 文件的 模式 ,給系統(tǒng)中所有用戶這個源文件的執(zhí)行許可。然后我們可以直接通過指定源文件的位置來執(zhí)行程序。我們使用./來指示程序位于當(dāng)前目錄。
為了更加有趣一些,你可以把你的文件名改成僅僅 helloworld,然后運(yùn)行./helloworld。這樣,這個程序仍然可以工作,因為系統(tǒng)知道它必須用源文件第一行指定的那個解釋器來運(yùn)行程序。
只要知道程序的確切位置,你現(xiàn)在就可以運(yùn)行程序了——但是如果你希望你的程序能夠從各個位置運(yùn)行呢?那樣的話,你可以把你的程序保存在 PATH 環(huán)境變量中的目錄之一。每當(dāng)你運(yùn)行任何程序,系統(tǒng)會查找列在 PATH 環(huán)境變量中的各個目錄。然后運(yùn)行那個程序。你只要簡單地把這個源文件復(fù)制到 PATH 所列目錄之一就可以使你的程序在任何位置都可用了。
$ echo $PATH
/opt/mono/bin/:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/swaroop/bin
$ cp helloworld.py /home/swaroop/bin/helloworld
$ helloworld
Hello World
我們能夠用 echo 命令來顯示 PATH 變量,用$給變量名加前綴以向 shell 表示我們需要這個變量的值。我們看到/home/swaroop/bin 是 PATH 變量中的目錄之一。swaroop 是我的系統(tǒng)中使用的用戶名。通常,在你的系統(tǒng)中也會有一個相似的目錄。你也可以把你選擇的目錄添加到 PATH 變量中去——這可以通過運(yùn)行 PATH=$PATH:/home/swaroop/mydir 完成,其中“/home/swaroop/mydir”是我想要添加到 PATH 變量中的目錄。
當(dāng)你想要在任何時間、任何地方運(yùn)行你的程序的時候,這個方法十分有用。它就好像創(chuàng)造你自己的指令,如同 cd 或其他 Linux 終端或 DOS 提示符命令那樣。
提示
對于 Python 來說,程序、腳本或者軟件都是指同一個東西。
如果你需要某個 Python 函數(shù)或語句的快速信息幫助,那么你可以使用內(nèi)建的 help 功能。尤其在你使用帶提示符的命令行的時候,它十分有用。比如,運(yùn)行 help(str)——這會顯示 str 類的幫助。str 類用于保存你的程序使用的各種文本(字符串)。類將在后面面向?qū)ο缶幊痰恼鹿?jié)詳細(xì)解釋。
注釋
按 q 退出幫助。
類似地,你可以獲取 Python 中幾乎所有東西的信息。使用 help()去學(xué)習(xí)更多關(guān)于 help 本身的東西!
如果你想要獲取關(guān)于如 print 那樣操作符的幫助,那么你需要正確的設(shè)置 PYTHONDOCS 環(huán)境變量。這可以在 Linux/Unix 中輕松地通過 env 命令完成。
$ env PYTHONDOCS=/usr/share/doc/python-docs-2.3.4/html/ python
Python 2.3.4 (#1, Oct 26 2004, 16:42:40)
[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help('print')
你應(yīng)該注意到我特意在“print”上使用了引號,那樣 Python 就可以理解我是希望獲取關(guān)于“print”的幫助而不是想要它打印東西。
注意,我使用的位置是在 Fedora Core 3 Linux 中的位置——它可能在不同的發(fā)行版和版本中有所不同。
你現(xiàn)在應(yīng)該可以方便地編寫、保存和運(yùn)行 Python 程序了。既然你是一個 Python 用戶,讓我們學(xué)習(xí)更多 Python 的概念。