談談Python中的while循環語句

這篇文章主要給大家介紹了關於Python中while循環語句的相關資料,使用while循環語句可以解決程序中需要重複執行的操作,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

前言

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=['拌海蜇', '熗冬筍', '炸麪筋', '麻辣野雞', '炒肉片']

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章