天天看點

《Python遊戲程式設計快速上手》一2.3 在變量中存儲值

本節書摘來異步社群《python遊戲程式設計快速上手》一書中的第2章,第2.3節,作者: 【美】al sweigart(斯維加特) 譯者: 李強 責編: 陳冀康,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

也可以把表達式的計算結果的值存儲到變量中,以便後面可以使用它。可以把變量當做是一個可以儲存值的盒子。

一條指派語句指令會把一個值儲存到一個變量中。輸入變量的名稱,後邊跟着等号(=稱為指派操作符),然後是要存儲到這個變量中的值。例如,在互動式shell中輸入spam = 15:

這将把值15存儲到spam變量的盒子中,如圖2-4所示。名字“spam”是盒子的标簽(python由此可以識别變量),而值寫在盒子中的一張便簽上。

《Python遊戲程式設計快速上手》一2.3 在變量中存儲值

當按下Enter鍵時,你不會看到任何響應。在python中,如果沒有出現錯誤,就表示成功地執行了指令。然後将會出現>>>提示符,你可以輸入下一條指令了。

和表達式不同,語句是不會計算為任何值的指令。正因為如此,在spam = 15之後,互動式shell的下一行中沒有顯示任何的值。如果你不清楚哪些指令是表達式,哪些指令是語句,那麼請記住:表達式會得到一個值,而任何其他類型的指令都是一條語句。

變量儲存的是值而不是表達式。例如,考慮一下語句spam = 10 + 5和spam = 10 + 7 - 2中的表達式。它們的運算結果都是15。最終結果是相同的:兩條指派語句都把值15儲存到了變量spam中。

第一次在指派語句中使用一個變量的時候,python将會建立該變量。要檢視變量中的值,在互動式shell中輸入該變量的名稱:

表達式spam得到了變量spam中的值,即15。可以在表達式中使用變量。嘗試在互動式shell中輸入如下指令:

我們已經把變量spam的值設定為15,是以輸入spam + 5就像是輸入表達式15 + 5一樣。下面是spam + 5的運算步驟:

在指派語句建立變量之前,不能使用該變量。否則,python将會給出一個nameerror的錯誤,因為尚不存在該名稱的變量。輸錯了變量名稱也會得到這樣一個錯誤:

出現這個錯誤,是因為雖然有spam變量,但是并沒有名為spma的變量。

可以通過輸入另一條指派語句來修改變量中存儲的值。例如,嘗試在互動式shell中輸入如下語句:

當第一次輸入spam + 5時,表達式的計算結果是20,因為我們把15存儲在spam中。然而,當輸入spam = 3時,用值3替代(或覆寫)了值15。現在,當我們輸入spam + 5時,表達式的計算結果是8,因為現在spam的值是3。覆寫的過程如圖2-5所示。

《Python遊戲程式設計快速上手》一2.3 在變量中存儲值

甚至可以使用spam變量中的這個值,來給spam賦一個新的值:

指派語句spam = spam + 5的意思是:“spam變量中的新值是,spam目前的值加上5”。通過在互動式shell中輸入如下的語句,讓spam中的值持續幾次增加5:

使用多個變量

在程式中,可以根據需要建立任意多個變量。例如,讓我們給名為eggs和bacon的兩個變量配置設定不同的值,如下所示:

現在,變量bacon中是10,變量eggs中是15。每個變量都有自己的盒子,其中擁有其自己的值,如圖2-6所示。

《Python遊戲程式設計快速上手》一2.3 在變量中存儲值

嘗試在互動式shell中輸入spam = bacon + eggs,然後檢視spam中的新值:

現在,spam中的值是25。當把bacon和eggs相加時,就是把其值10和15相加。變量包含的是值而不是表達式。把值25賦給變量spam,而不是把表達式bacon + eggs賦給變量。在spam = bacon + eggs指派語句之後,對于bacon或者eggs的修改不會再影響到spam。

繼續閱讀