一、While循環(huán)簡介
1. 使用While循環(huán)
for循環(huán)用于針對集合中的每個元素的一個代碼塊。而While循環(huán)不斷地運行,直到指定的條件不滿足為止。
number = 1
while number < 5:
print(number)
number += 1
2. 讓用戶選擇何時退出
可使用While循環(huán)讓程序在用戶愿意時不斷運行状蜗,如下所示,定義一個退出值起趾,只要用戶輸入的不是這個值诗舰,程序就接著運行:
prompt = "please input: "
message = ""
while message == 'quit':
message = input(prompt)
print(message)
3.使用標志
在要求很多條件都滿足才繼續(xù)運行的程序中,可定義一個變量训裆,用于判斷整個程序是否處于活動狀態(tài)眶根,這個變量稱為標志。你可讓程序在標志為True時繼續(xù)運行边琉,并在任何事件導致標志為False時讓程序停止運行属百。這樣,在While語句中就只需要檢查一個條件—標志的當前值是否為True变姨。
prompt = "please input: "
active = True
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
print(message)
4. 使用break退出循環(huán)
要立即退出while循環(huán)族扰,不再運行循環(huán)中余下的代碼,也不管什么測試的結果如何定欧,可使用break語句渔呵。break語句用于控制程序流程,可使用它來控制哪些代碼行將執(zhí)行砍鸠,哪些代碼行不執(zhí)行扩氢。
prompt = "please input: "
while True:
city = input(prompt)
if city == 'quit':
break
else:
print(city)
5.在循環(huán)中使用continue
要返回到循環(huán)開頭,并根據(jù)條件測試結果決定是否繼續(xù)執(zhí)行爷辱,可使用continue語句录豺。
number = 0
while number < 10:
number += 1
if number % 2 == 0:
continue
else:
print(number)
二朦肘、使用while循環(huán)來處理列表和字典
for循環(huán)是一種遍歷列表的有效方式,但在for循環(huán)中不應該修改列表双饥,否則將導致Python難以跟蹤其中的元素媒抠。要在遍歷列表的同時對其進行修改,可使用while循環(huán)咏花。通過將while循環(huán)同列表和字典結合起來使用趴生,可收集、存儲并組織大量輸入供以后查看和顯示迟螺。
1. 在列表之間移動元素
unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []
while unconfirmed_users:
user = unconfirmed_users.pop()
print("verfying user: " + user.title())
confirmed_users.append(user)
print("\nThe folloeing users have been confirmed:")
for confirmed_user in confirmed_users:
print(confirmed_user.title())
2. 刪除包含特定值的所有的列表元素
在一個列表中冲秽,可能有多個相同的值,要想把這些值全部刪除矩父,需要在while循環(huán)中使用remove( )方法來刪除列表中的特定值。
pets = ['dog', 'cat', 'dog', 'cat', 'rabbit', 'cat']
while 'cat' in pets:
pets.remove('cat')
print(pets)
3. 使用用戶輸入來填充字典
可使用while循環(huán)提示用戶輸入任意數(shù)量的信息排霉。
responses = {}
active = True
while active:
name = input("please input what's your name: ")
response = input("plwase input response:")
responses[name] = response
repeat = input("還有人參與調(diào)查嗎")
if repeat == 'no':
active = False
print("\n---Poll Results---")
for name, response in responses.items():
print(name + ": " + response)