While循环

2020-01-21  本文已影响0人  雪脩

一、While循环简介

1. 使用While循环

for循环用于针对集合中的每个元素的一个代码块。而While循环不断地运行,直到指定的条件不满足为止。

number = 1
while number < 5:
  print(number)
  number += 1

2. 让用户选择何时退出

可使用While循环让程序在用户愿意时不断运行,如下所示,定义一个退出值,只要用户输入的不是这个值,程序就接着运行:

prompt = "please input: "
message = ""
while message == 'quit':
  message = input(prompt)
  print(message)

3.使用标志

在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态,这个变量称为标志。你可让程序在标志为True时继续运行,并在任何事件导致标志为False时让程序停止运行。这样,在While语句中就只需要检查一个条件—标志的当前值是否为True。

prompt = "please input: "
active = True
while active:
  message = input(prompt)
  if message == 'quit':
    active = False
  else:
    print(message)

4. 使用break退出循环

要立即退出while循环,不再运行循环中余下的代码,也不管什么测试的结果如何,可使用break语句。break语句用于控制程序流程,可使用它来控制哪些代码行将执行,哪些代码行不执行。

prompt = "please input: "

while True:
  city = input(prompt)
  
  if city == 'quit':
    break
  else:
    print(city)

5.在循环中使用continue

要返回到循环开头,并根据条件测试结果决定是否继续执行,可使用continue语句。

number = 0
while number < 10:
  number += 1
  if number % 2 == 0:
    continue
  else:
    print(number)

二、使用while循环来处理列表和字典

for循环是一种遍历列表的有效方式,但在for循环中不应该修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while循环。通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输入供以后查看和显示。

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循环中使用remove( )方法来删除列表中的特定值。

pets = ['dog', 'cat', 'dog', 'cat', 'rabbit', 'cat']

while 'cat' in pets:
  pets.remove('cat')
  
print(pets)

3. 使用用户输入来填充字典

可使用while循环提示用户输入任意数量的信息。

responses = {}

active = True

while active:
  name = input("please input what's your name: ")
  response = input("plwase input response:")
  
  responses[name] = response
  
  repeat = input("还有人参与调查吗")
  if repeat == 'no':
    active = False

print("\n---Poll Results---")
for name, response in responses.items():
  print(name + ": " + response)
上一篇下一篇

猜你喜欢

热点阅读