讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 8.4 風格問題循環變量名 >

8.4 風格問題循環變量名

循環變量與其他變量一樣。它沒有任何特殊之處,只是對應一個值的名字而已。將這個變量用作循環計數器也是可以的。

之前我們說過,要使用能夠描述變量用途的變量名。正是這個原因,我們在前一個例子中選擇了 looper 這個名字。不過,有時可以有些例外,循環變量就屬於這種例外。這是因為,編程中有一個慣例(應該記得,慣例就是表示通用的做法),通常使用字母 ijk 等作為循環變量。

從前的美好時光

為什麼用 ijk 循環?

這是因為早先的程序員一直用程序來計算數學問題,而數中 abcxyz 已經有其他用途。另外,在當時一種流的編程語言中,變量 ijk 總是整數,不能把它們創建為何其他類型。由於循環計數器總是整數,所以程序員總是選 ijk 來作為循環計數器,這也成為了一種通用的做法。

由於很多人都使用 ijk 作為循環變量,程序員在程序中也習慣了這種做法。當然也可以用其他名字作為循環變量(就像前面的例子中一樣),不過,除了作為循環變量,ijk 不應當有其他用途。

如果採用這個慣例,程序就會像這樣:

for i in range (1, 5):    print i, "times 8 =", i * 8  

它的用法完全相同。(你可以試試看!)

為循環變量選擇什麼名字屬於風格問題。風格(style)就是你的程序看上去怎麼樣,而與程序能不能正常工作無關。不過,如果與其他程序員採用相同的風格,你的程序就會更易讀、更易於理解,也更易於調試。同時,你也會更加習慣這種風格,能夠更輕鬆地讀懂其他人的程序。

range 簡寫

不一定非得為 range 提供兩個數(像在代碼清單 8-5 中那樣),可以只提供一個數:

for i in range (5):  

這與寫作:

for i in range (0, 5):  

完全相同,同樣會提供以下數字列表:[0, 1, 2, 3, 4]

實際上,大多數程序員都從 0 開始循環而不是從 1 開始。如果使用 range(5),會得到循環的 5 次迭代,這很容易記住。只是需要知道,第一次循環時 i 將等於 0 而不是 1,而最後一次循環時,它將等於 4 而不是 5。

從前的美好時光

為什麼大多數程序員從 0 而不是 1 開始循環呢?

是這樣的,從前,有些人堅持從 1 開始,有些人則堅持從 0 開始。他們對於哪一種做法更好有過激烈的爭論。最終,堅持從 0 開始的人勝利了。

所以就出現了現在的情況,如今大多數人都從 0 開始循環,不過你可以根據自己的喜好選擇任何一種做法。只是要記住,需要調整上界來得到正確的迭代次數。

嗯,卡特,你已經發現字符串的一些規律了。字符串就像一個字符列表,我們已經學過:計數循環使用列表來完成迭代。這說明,也可以利用一個字符串來循環。字符串中的每個字符對應循環中的一次迭代。所以,如果打印循環變量(在這個例子中卡特把他的循環變量取名為 letter),就會打印出這個字符串中的所有字母,一次打印一個字母。因為每個 print 語句都會換行,所以每個字母分別打印在單獨的一行上。

你可以像卡特一樣,多做一些嘗試,這是一種很好的學習方法!