您好,登錄后才能下訂單哦!
前言
python中有兩種循環,while和for,兩種循環的區別是,while循環之前,先判斷一次,如果滿足條件的話,再循環,for循環的時候必須有一個可迭代的對象,才能循環,比如說得有一個數組。
循環里面還有兩個比較重要的關鍵字,continue和break,continue的意思是,跳出本次循環,繼續重頭開始循環,break的意思是停止整個循環,也就是說在continue和break下面的代碼都是不執行的。
for 循環用于集合,其中的每一個元素都會執行同一段代碼塊; 而 while 循環會不斷地運行同一段代碼塊, 直到不滿足指定的條件為止。
1 示例
我們使用 while 循環語句,設計一個小游戲。讓玩家輸入一個數字,程序將告訴他,這個數是奇數,還是偶數:
# 輸入提示 prompt = '輸入一個數字,我將告訴你,它是奇數,還是偶數哦O(∩_∩)O~' prompt += '\n輸入“不玩了”,將退出本程序: ' exit = '不玩了' # 退出指令 content = '' #輸入內容 while content != exit: content = input(prompt) if content.isdigit(): number = int(content) if (number % 2 == 0): print('該數是偶數') else: print('該數是奇數') elif content != exit: print('輸入的必須是數字哦')
運行結果:
我們在這段程序中,定義了一個退出指令, 只要玩家輸入的不是這個指令, 程序就會一直運行。
2 活動狀態標識
真實的游戲場景,可能有很多情況都會導致游戲結束。這時我們可以定義一個活動狀態標識,用于判斷整個程序是否處于活動狀態。
我們來改寫之前的示例:
prompt = '輸入一個數字,我將告訴你,它是奇數,還是偶數哦O(∩_∩)O~' prompt += '\n輸入“不玩了”,將退出本程序: ' exit = '不玩了' # 退出指令 content = '' # 輸入內容 active = True # 活動狀態標識 while active: content = input(prompt) if content.isdigit(): number = int(content) if (number % 2 == 0): print('該數是偶數') else: print('該數是奇數') elif content == exit: active = False else: print('輸入的必須是數字哦')
改寫后,程序邏輯變得更清晰咯O(∩_∩)O~
在復雜的程序中, 可能存在很多事件都會導致程序停止。這時,設計一個活動狀態標識就很有用: 其中的任何一個事件發生時,把活動狀態標識設置為 False, 主程序循環結束。
3 break 關鍵字
使用 break 關鍵字,可以立即退出while 循環。
... while active: content = input(prompt) if content.isdigit(): ... elif content == exit: break else: ...
4 continue 關鍵字
使用 continue 關鍵字,可以直接返回到循環的開頭, 然后根據 while 條件測試結果來決定是否繼續執行下一次循環。
while active: content = input(prompt) if content.isdigit(): number = int(content) if (number % 2 == 0): print('該數是偶數') else: continue elif content == exit: break else: print('輸入的必須是數字哦')
這個改寫后的示例,將只會打印偶數;如果碰到奇數,則直接跳到下一個循環。
5 無限循環
每個 while 循環都必須有一條停止運行的條件,否則就會無限循環執行下去。如果程序不小心陷入無限循環, 那么就必須按 Ctrl + C , 或關閉顯示程序輸出的終端窗口,來強行停止程序。
6 處理列表
可以使用 while 循環,在遍歷列表的同時對其進行修改。而這在 for 循環中,就不可以一邊遍歷一邊修改。
6.1 遷移列表元素
to_go_countries = ['英國', '法國', '美國'] # 想去的國家 visited_countries = [] # 已去的國家 while to_go_countries: country = to_go_countries.pop() print('準備去【' + country+'】') print('【1】做攻略') print('【2】出發') print('【3】回來咯') visited_countries.append(country) print('to_go_countries:'+str(to_go_countries)) print('這些國家去過啦:' + str(visited_countries))
運行結果:
代碼中,使用 pop() 方法彈出棧頂元素(即列表末尾的最后一個元素),并返回這個元素。
可以看到,【 想去的國家列表】在退出 while 循環之后,已經被彈空啦O(∩_∩)O~
6.2 刪除列表元素
假設,目前有這些菜可點,但今天突然不想吃 “炸豆腐”,我們就可以這些寫:
foods = ['拌海蜇', '熗冬筍', '炸豆腐', '炸面筋', '麻辣野雞', '炒肉片'] while '炸豆腐' in foods: foods.remove('炸豆腐') print('foods=' + str(foods))
運行結果:
foods=['拌海蜇', '熗冬筍', '炸面筋', '麻辣野雞', '炒肉片']
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。