天天看點

《Python程式設計初學者指南》——1.5 IDLE簡介

本節書摘來自異步社群《python程式設計初學者指南》一書中的第1章,第1.5節,作者[美]michael dawson,王金蘭 譯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

python自帶一個名叫idle的內建開發環境。“開發環境”指的是一組能讓程式編寫工作變得更加輕松的工具。讀者可以将其看作是一個用于程式設計的文字處理器,但它能做的事情可不止是編寫、儲存、編輯那麼簡單。idle提供了兩種工作模式:互動模式(interactive mode)和腳本模式(script mode)。

終于到實際動手的時間了。最簡單的方式是以互動模式啟動python。在該模式中,讀者可以告訴python要做什麼,然後它就會立即給出響應。

1.編寫第一個程式

點選開始菜單,然後依次點選“所有程式”、“python 3.1”、“idle (python gui)”,這樣就啟動了一個互動式會話。讀者應該會在螢幕上看到一個類似于圖1.4的東西。

《Python程式設計初學者指南》——1.5 IDLE簡介

這個視窗叫作python shell。在指令提示符(>>>)那裡輸入print("game over")并按下enter鍵。解釋器就會在螢幕上顯示如下資訊:

此時,第一個python程式就寫出來了。是不是感覺到自己已經是一名真正的程式員了(雖然還需要學習很多東西,但誰又不是呢)?

2.使用print函數

再看一下剛才寫的那行代碼,即print("game over")。多麼簡單,完全不需要了解什麼程式設計的知識,就能夠猜出它的作用。這就是python,它非常簡潔明了。當讀者知道如何用python編寫更複雜的程式時,就會更加明顯地感覺到這一點。

print()函數用于顯示文本(就是在那對圓括号中用引号括起來的那些東西)。如果圓括号中沒有任何東西的話,就會輸出一個空行。

學習行話

作為一名程式員,要時不時地把一些隻有程式員才懂的稀奇古怪的詞挂在嘴邊才像個樣子。函數(function)就像是一個能夠執行某種特殊任務的迷你小程式。print()函數的任務就是顯示一個值(或一組值)。通過函數的名稱以及緊跟其後的一對圓括号即可讓其開始工作,也就是調用(call),比如在互動模式下輸入print("game over")。有時可以給函數提供(也叫作傳參(pass))一些需要用到的值。這些值(也叫作參數(argument))要放在圓括号裡面。在這第一個程式中,向print()函數傳遞了參數“game over”(這個函數就是用它來顯示game over消息的)。

在這個例子中,傳給print()函數的值“game over”是一個字元串(string)。它指的其實就是一組字元(跟鍵盤上的那些差不多)序列。“字元串”貌似是一個很怪的名字(“文本”或“文字”可能會更容易了解一點),但它其實是源于“文本是一串或一組字元”觀點。嚴格來講,“game over”是一個字元串字面量(literal),因為它在字面上就是一組構成單詞的字元。

輸入給解釋器的代碼行也被稱為語句(statement)。在英語中,一個statement指的是一個“完整的意思”。在python中,一條語句則是一條“完整的指令”,它是可以執行的。每個程式中都含有許許多多的語句。

現在可以告訴别人自己寫過一些python代碼了。代碼(code)指的是一段程式設計語句,也可以被當成一個動詞來用,表示程式設計活動。例如,可以說,整個晚上都在一邊吃着hot cheetos,喝着激浪,一邊發瘋似的程式設計。

3.生成錯誤

計算機是一個字元一個字元地擷取資訊的。如果拼錯了函數名(哪怕隻是一個字母),計算機就不會明白使用者想要幹什麼。例如,在互動提示符那裡,如果輸入primt("game over"),解釋器就會給出下面這樣的響應:

翻譯成人類語言的話,解釋器其實說的就是“你說什麼?”錯誤消息中的關鍵行是nameerror: name 'primt' is not defined。這條消息表示的是解釋器不認識primt。對人類來說,當然可以忽略掉這種拼寫錯誤并正确了解其含義。而計算機則沒這麼寬宏大量。好在隻需修正錯誤的拼寫即可解決這類型的程式設計錯誤(也就是bug)。

4.了解文法高亮顯示

可能讀者已經注意到了,顯示在螢幕上的單詞的顔色是有差別的(書上自然是看不出來的)。這就叫文法高亮(syntax highlighting),它能幫使用者從視覺感官上快速了解所輸入的内容。用在字型上的這些顔色是有規矩的。python語言中的特殊單詞(比如print)會被顯示為紫色;字元串(比如game over)會被顯示為綠色;輸出資訊(也就是解釋器針對你所輸入的程式而顯示的結果)則會被顯示為藍色。在編寫比較大的程式時,這種彩色顯示方案能讓使用者掃一眼代碼即可輕松發現其中的錯誤。

互動模式能讓使用者即刻得到回報。這是很不錯的事情,因為可以看到結果。但如果想建立一個程式并将其儲存起來以便今後還可以再執行的話,它就不那麼合适了。幸運的是,python的idle還提供了一個腳本模式。在該模式下,可以編寫、編輯、加載以及儲存程式。它就好像是一個用于代碼的文字處理器。事實上,确實可以用上一些類似的功能,比如查找和替換、剪切和粘貼等。

1.編寫你的第一個程式(再來一次)

腳本模式的視窗可以在互動模式視窗中打開(點選file菜單,然後點選new window即可)。這時就會出現一個像圖1.5那樣的新視窗。

《Python程式設計初學者指南》——1.5 IDLE簡介

在這個新的腳本視窗中,輸入print("game over")并按下enter鍵。什麼變化也沒有!這是因為現在正處于腳本模式。使用者要做的是編寫一長串需要計算機稍後再執行的語句。儲存好這個程式之後,就可以運作了。

2.儲存并運作你的程式

依次點選file、save as,即可儲存程式。為這個程式起名為game_over.py。為了以後能更友善的找到它,把它儲存到桌面上。

隻需依次點選run、run module,即可運作這個game over程式。然後,互動模式視窗就會把程式的結果顯示出來。這裡的運作結果如圖1.6所示。

注意看一下,互動視窗中還顯示着之前的文字。剛才在互動模式下輸入的語句(print ("game over"))及其執行結果(消息“game over”)還都在那裡。在那些東西下面是一條restart消息,再下面就是來自腳本模式的程式的執行結果了:game over。

《Python程式設計初學者指南》——1.5 IDLE簡介

要想通過idle執行程式,先要将它儲存一下才行。

互動模式對于快速檢驗一些小想法是很不錯的,而腳本模式則适合于編寫一些今後可以運作的程式。合理運用這兩種模式才是最佳的程式設計方式。

即使在程式設計的時候隻需要使用腳本模式,但仍然需要一直開着一個互動視窗。因為在腳本模式中程式設計時,會時不時地進到互動視窗中測試某個想法或剛剛編寫的函數是不是對的。

腳本視窗是生産最終産品的地方,互動視窗則相當于用來試驗的草稿本。把它們結合起來使用才能更快地編寫出更好的程式。