for 循环用于针对集合中的每个元素都一个代码块,而while 循环不断地运行,直到指定的条件不满足为止。
1、条件控制
可以使用while 循环来计数控制,使用条件判断语句进行循环控制如下:
current_number = 1
while current_number <= 5:
print(current_number)
current_number += 1
python返回:
1
2
3
4
5
2、标志控制
定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志 ,充当了程序的交通信号灯。
如下使用active标志进行循环控制:
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
active = True
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
print(message)
直到输入quit循环退出,否则返回用户输入。
备注:上述标志数据类型为布尔变量,其值只有两个True和False。
3、使用break推出循环
要立即退出while 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break 语句。break 语句用于控制程序流程,可使用它来控制哪些代码行将执行,哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。
可以在while循环体的任何位置使用break语句,将直接跳过后续语句,退出循环。
4、使用continue继续下次循环
continue语句会结束本次循环,后续循环体代码不再执行,开启下一次循环。即本次循环结束,后续代码无需执行,进入下次循环时使用。
同样可以在while循环体的任何位置使用continue语句,将直接跳过后续语句,进入下次循环。
例如:
current_number = 0
while current_number < 10:
current_number += 1
if current_number % 2 == 0:
continue
print(current_number)
python返回:
1
3
5
7
9
5、避免无限循环
无限循环即停止条件永远无法满足,会无限重复循环。在单片机应用中一般会使用while(1)进行无限循环。但在电脑应用中,无限循环会占用大量资源,且意义不大。
如果程序陷入无限循环,可按Ctrl+ C,也可关闭显示程序输出的终端窗口
6、使用while处理列表和字典
for 循环是一种遍历列表的有效方式,但在for 循环中不应修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while 循环。
通过将while 循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。
例如使用while可以很方便的删除列表同种元素,但for循环不易改变列表元素:
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)
while 'cat' in pets:
pets.remove('cat')
print(pets)
python返回:
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
['dog', 'dog', 'goldfish', 'rabbit']
备注:remove(value)方法一次只能删除在列表中找到的第一个元素,无法一次删除所有同类元素,如下代码:
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)
pets.remove('cat')
print(pets)
python输出:
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
['dog', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']