讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 11.2 可變循環 >

11.2 可變循環

固定的數(比如 range 函數中使用的數)也稱為常數(constant)。如果在一個 for 循環的 range 函數中使用常數,程序運行時循環總會運行相同的次數。在這種情況下,我們稱循環次數是硬編碼的(hard-coded),因為它在你的代碼中被定義了,而且永遠不會改變。這往往不是我們真正想要的。

有時我們希望循環次數由用戶來決定,或者由程序的另一部分決定。對於這種情況,我們就需要一個變量。

例如,假設你要建立一個太空神槍手遊戲。只要有外星人被消滅就要重繪屏幕。必須有某個計數器來跟蹤還剩下多少外星人,另外只要屏幕更新,就需要循環處理剩下的外星人,在屏幕上畫出他們的圖像。每次玩家消滅一個外星人時外星人數就會改變。

因為我們還沒有學習如何在屏幕上畫外星人,下面先給出一個使用可變循環的簡單示例程序:

for i in range (1, numStars):     print '*',  

 

>>> ====================== RESTART ======================>>>How many stars do you want? 5* * * *  

這個程序會詢問用戶想要多少個星號,然後使用一個可變循環準確地打印這些星號。嗯,只能算基本準確!我們想要 5 個星號,可是只得到了 4 個!唉呀,我們忘記了 for 循環不是達到 range 函數中第二個數時才停止,它在比這個數少 1 時就停止了。所以需要對用戶的輸入加 1。

還有一種方法可以完成同樣的工作,就是從 0 開始循環計數,而不是 1。(這一點在第 8 章提到過。)這種做法在編程中很常用,下一章會解釋為什麼。先來看看這個循環是怎樣的:

numStars = int(raw_input ("How many stars do you want? "))for i in range(0, numStars):     print '*',>>> ====================== RESTART =====================>>>How many stars do you want? 5* * * * *