溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

談?wù)凱ython中的while循環(huán)語(yǔ)句

發(fā)布時(shí)間:2020-09-28 14:44:13 來(lái)源:腳本之家 閱讀:159 作者:deniro 欄目:開(kāi)發(fā)技術(shù)

前言

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ù)重頭開(kāi)始循環(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é)果:

談?wù)凱ython中的while循環(huán)語(yǔ)句

我們?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)改寫(xiě)之前的示例:

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ù)字哦')

改寫(xiě)后,程序邏輯變得更清晰咯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)的開(kāi)頭, 然后根據(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è)改寫(xiě)后的示例,將只會(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é)果:

談?wù)凱ython中的while循環(huán)語(yǔ)句

代碼中,使用 pop() 方法彈出棧頂元素(即列表末尾的最后一個(gè)元素),并返回這個(gè)元素。

可以看到,【 想去的國(guó)家列表】在退出 while 循環(huán)之后,已經(jīng)被彈空啦O(∩_∩)O~

6.2 刪除列表元素

假設(shè),目前有這些菜可點(diǎn),但今天突然不想吃 “炸豆腐”,我們就可以這些寫(xiě):

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ì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI