python中“標志位”的使用!!!
在復雜的程序中,很多不同的事件都會導致程序停止運行;在這種情況下,該怎么辦呢?
例如,在游戲中,多種事件都可能導致游戲結束,如玩家一艘飛船都沒有了或要保護的城市都被摧毀了。導致程序結束的事件有很多時,如果在一條 while 語句中檢查所有這些條件,將既復雜又困難。在要求很多條件都滿足才繼續運行的程序中,可定義一個變量,用於判斷整個程序是否處於活動狀態。這個變量被稱為 標志 ,充當了程序的交通信號燈。你可讓程序在標志為 True 時繼續運行,並在任何事件導致標志的值為 False 時讓程序停止運行。這樣,在 while 語句中就只需檢查一個條件 —— 標志的當前值是否為 True ,並將所有測試(是否發生了應將標志設置為 False 的事件)都放在其他地方,從而讓程序變得更為整潔。
下面來在前一節的程序 parrot.py 中添加一個標志。我們把這個標志命名為 active (可給它指定任何名稱),它將用於判斷程序是否應繼續運行:
prompt = "\nTell me something, and I will repeat it back to you:"prompt += "\nEnter 'quit' to end the program. "
❶ active = True
❷ while active:
message = input(prompt)
❸ if message == 'quit':
active = False
❹ else:
print(message)
我們將變量 active 設置成了 True (見❶),讓程序最初處於活動狀態。這樣做簡化了 while 語句,因為不需要在其中做任何比較 —— 相關的邏輯由程序的其他部分處理。只要變量 active 為 True ,循環就將繼續運行(見❷)。在 while 循環中,我們在用戶輸入后使用一條 if 語句來檢查變量 message 的值。如果用戶輸入的是 'quit' (見❸),我們就將變量 active 設置為 False ,這將導致 while 循環不再繼續執行。如果用戶輸入的不是 'quit' (見❹),我們就將輸入作為一條消息打印出來。