談?wù)凱ython中的while循環(huán)語(yǔ)句
前言
python中有兩種循環(huán),while和for,兩種循環(huán)的區(qū)別是,while循環(huán)之前,先判斷一次,如果滿足條件的話,再循環(huán),for循環(huán)的時(shí)候必須有一個(gè)可迭代的對(duì)象,才能循環(huán),比如說(shuō)得有一個(gè)數(shù)組。
循環(huán)里面還有兩個(gè)比較重要的關(guān)鍵字,continue和break,continue的意思是,跳出本次循環(huán),繼續(xù)重頭開始循環(huán),break的意思是停止整個(gè)循環(huán),也就是說(shuō)在continue和break下面的代碼都是不執(zhí)行的。
for 循環(huán)用于集合,其中的每一個(gè)元素都會(huì)執(zhí)行同一段代碼塊; 而 while 循環(huán)會(huì)不斷地運(yùn)行同一段代碼塊, 直到不滿足指定的條件為止。
1 示例
我們使用 while 循環(huán)語(yǔ)句,設(shè)計(jì)一個(gè)小游戲。讓玩家輸入一個(gè)數(shù)字,程序?qū)⒏嬖V他,這個(gè)數(shù)是奇數(shù),還是偶數(shù):
# 輸入提示 prompt = '輸入一個(gè)數(shù)字,我將告訴你,它是奇數(shù),還是偶數(shù)哦O(∩_∩)O~' prompt += '\n輸入“不玩了”,將退出本程序: ' exit = '不玩了' # 退出指令 content = '' #輸入內(nèi)容 while content != exit: content = input(prompt) if content.isdigit(): number = int(content) if (number % 2 == 0): print('該數(shù)是偶數(shù)') else: print('該數(shù)是奇數(shù)') elif content != exit: print('輸入的必須是數(shù)字哦')
運(yùn)行結(jié)果:
我們?cè)谶@段程序中,定義了一個(gè)退出指令, 只要玩家輸入的不是這個(gè)指令, 程序就會(huì)一直運(yùn)行。
2 活動(dòng)狀態(tài)標(biāo)識(shí)
真實(shí)的游戲場(chǎng)景,可能有很多情況都會(huì)導(dǎo)致游戲結(jié)束。這時(shí)我們可以定義一個(gè)活動(dòng)狀態(tài)標(biāo)識(shí),用于判斷整個(gè)程序是否處于活動(dòng)狀態(tài)。
我們來(lái)改寫之前的示例:
prompt = '輸入一個(gè)數(shù)字,我將告訴你,它是奇數(shù),還是偶數(shù)哦O(∩_∩)O~' prompt += '\n輸入“不玩了”,將退出本程序: ' exit = '不玩了' # 退出指令 content = '' # 輸入內(nèi)容 active = True # 活動(dòng)狀態(tài)標(biāo)識(shí) while active: content = input(prompt) if content.isdigit(): number = int(content) if (number % 2 == 0): print('該數(shù)是偶數(shù)') else: print('該數(shù)是奇數(shù)') elif content == exit: active = False else: print('輸入的必須是數(shù)字哦')
改寫后,程序邏輯變得更清晰咯O(∩_∩)O~
在復(fù)雜的程序中, 可能存在很多事件都會(huì)導(dǎo)致程序停止。這時(shí),設(shè)計(jì)一個(gè)活動(dòng)狀態(tài)標(biāo)識(shí)就很有用: 其中的任何一個(gè)事件發(fā)生時(shí),把活動(dòng)狀態(tài)標(biāo)識(shí)設(shè)置為 False, 主程序循環(huán)結(jié)束。
3 break 關(guān)鍵字
使用 break 關(guān)鍵字,可以立即退出while 循環(huán)。
... while active: content = input(prompt) if content.isdigit(): ... elif content == exit: break else: ...
4 continue 關(guān)鍵字
使用 continue 關(guān)鍵字,可以直接返回到循環(huán)的開頭, 然后根據(jù) while 條件測(cè)試結(jié)果來(lái)決定是否繼續(xù)執(zhí)行下一次循環(huán)。
while active: content = input(prompt) if content.isdigit(): number = int(content) if (number % 2 == 0): print('該數(shù)是偶數(shù)') else: continue elif content == exit: break else: print('輸入的必須是數(shù)字哦')
這個(gè)改寫后的示例,將只會(huì)打印偶數(shù);如果碰到奇數(shù),則直接跳到下一個(gè)循環(huán)。
5 無(wú)限循環(huán)
每個(gè) while 循環(huán)都必須有一條停止運(yùn)行的條件,否則就會(huì)無(wú)限循環(huán)執(zhí)行下去。如果程序不小心陷入無(wú)限循環(huán), 那么就必須按 Ctrl + C , 或關(guān)閉顯示程序輸出的終端窗口,來(lái)強(qiáng)行停止程序。
6 處理列表
可以使用 while 循環(huán),在遍歷列表的同時(shí)對(duì)其進(jìn)行修改。而這在 for 循環(huán)中,就不可以一邊遍歷一邊修改。
6.1 遷移列表元素
to_go_countries = ['英國(guó)', '法國(guó)', '美國(guó)'] # 想去的國(guó)家 visited_countries = [] # 已去的國(guó)家 while to_go_countries: country = to_go_countries.pop() print('準(zhǔn)備去【' + country+'】') print('【1】做攻略') print('【2】出發(fā)') print('【3】回來(lái)咯') visited_countries.append(country) print('to_go_countries:'+str(to_go_countries)) print('這些國(guó)家去過(guò)啦:' + str(visited_countries))
運(yùn)行結(jié)果:
代碼中,使用 pop() 方法彈出棧頂元素(即列表末尾的最后一個(gè)元素),并返回這個(gè)元素。
可以看到,【 想去的國(guó)家列表】在退出 while 循環(huán)之后,已經(jīng)被彈空啦O(∩_∩)O~
6.2 刪除列表元素
假設(shè),目前有這些菜可點(diǎn),但今天突然不想吃 “炸豆腐”,我們就可以這些寫:
foods = ['拌海蜇', '熗冬筍', '炸豆腐', '炸面筋', '麻辣野雞', '炒肉片'] while '炸豆腐' in foods: foods.remove('炸豆腐') print('foods=' + str(foods))
運(yùn)行結(jié)果:
foods=['拌海蜇', '熗冬筍', '炸面筋', '麻辣野雞', '炒肉片']
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
- 跟老齊學(xué)Python之用while來(lái)循環(huán)
- Python學(xué)習(xí)之while 循環(huán)語(yǔ)句
- python中使用while循環(huán)的實(shí)例
- Python while 循環(huán)使用的簡(jiǎn)單實(shí)例
- Python基礎(chǔ)之循環(huán)語(yǔ)句用法示例【for、while循環(huán)】
- Python基礎(chǔ)教程之if判斷,while循環(huán),循環(huán)嵌套
- python 表達(dá)式和語(yǔ)句及for、while循環(huán)練習(xí)實(shí)例
- Python新手教程之while循環(huán)20例
相關(guān)文章
詳解基于django實(shí)現(xiàn)的webssh簡(jiǎn)單例子
這篇文章主要介紹了基于 django 實(shí)現(xiàn)的 webssh 簡(jiǎn)單例子,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07python 拷貝特定后綴名文件,并保留原始目錄結(jié)構(gòu)的實(shí)例
下面小編就為大家分享一篇python 拷貝特定后綴名文件,并保留原始目錄結(jié)構(gòu)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04python協(xié)程與?asyncio?庫(kù)詳情
這篇文章主要介紹了python協(xié)程與?asyncio?庫(kù)詳情,文章基于python展開詳細(xì)內(nèi)容,具有一定的參考價(jià)值。需要的小伙伴可以參考一下2022-05-05Pygame實(shí)戰(zhàn)練習(xí)之保護(hù)單身狗游戲
下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個(gè)簡(jiǎn)單的由經(jīng)典躲避類益智小游戲修改的保護(hù)單身狗游戲的相關(guān)資料,需要的朋友可以參考下2021-09-09Python datetime包函數(shù)簡(jiǎn)單介紹
這篇文章主要介紹了Python datetime包函數(shù)簡(jiǎn)單介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python RuntimeWarning:invalid value encounter
這篇文章主要介紹了Python RuntimeWarning:invalid value encountered in double_scalars處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例
今天小編就為大家分享一篇python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python os.path.exists()函數(shù)總是返回false的解決方案
這篇文章主要介紹了Python os.path.exists()函數(shù)總是返回false的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python+Pandas 獲取數(shù)據(jù)庫(kù)并加入DataFrame的實(shí)例
今天小編就為大家分享一篇Python+Pandas 獲取數(shù)據(jù)庫(kù)并加入DataFrame的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07