Python while循环
1、while 循环简介
- for 循环用于针对集合中的每个元素都一个代码块,而while循环不断的运行,直到指定的条件不满足为止。
1.1、使用while 循环:
-
循环从1数到5:
number = 1 # 指定从1开始数 while number <= 5: # 只要number小于或等于5 就接着运行这个循环 print(number) # 打印循环的值 number += 1 # 再给number值 + 1 # 由此类推, 一旦number大于5,循环就停止,整个程序也将到此结束 # 输出结果如下: 1 2 3 4 5
1.2、使用break退出循环:
-
要立即
退出while 循环
,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break 语句
while True: # while True 打头的循环 将不断运行, 知道遇到break 语句 city = input('输入您再的城市:') # 再输入中,如果输入1 就执行到 break 语句就会退出 if city == 1: break else: print('我喜欢去{}'.format(city))
- 注意: 在任何Python循环中都可使用break 语句。例如,可使用break 语句来退出遍历列表或字典的for 循环。
1.3、再循环中使用 continue:
-
要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue 语句,它不像break 语句那样不再执行余下的代码并退出整个循环。
number = 0 # 先将number 设置为0 , while number < 10: # 由于小于10 python 进行while循环 number += 1 # 进入循环后以步长1的方式往上数 if number % 2 == 0: # if 语句检查 number 与 2的求模运算结果, 如果结果为0就意味的number可以被2整出, 就执行continue 语句, 让Python忽略余下代码,并返回到循环的开头 continue print(number) # 输出结果: 1 3 5 7 9
-
continue语句是一个删除的效果
var = 10 while var > 0: var = var - 1 if var == 5 or var == 8: continue print('当前值:', var) print('Bye')
-
总结:
continue 语句用来告诉Python 跳过当前循环的剩余语句, 然后继续进行下一轮循环continue 语句用在while和 for 循环中
-
Python continue 语句跳出本次循环, 而break跳出整个循环
1.4、避免无限循环:
-
每个
while 循环都必须有停止运行的途径
,这样才不会没完没了地执行下去x = 1 while x <= 5: print(x) x += 1 # 输出结果如下: 1 2 3 4 5
- 如果不是想确定无限循环的话,必须有一个条件来终结这个循环。能够让循环条件为
False
或break
语句结束无限循环。
- 如果不是想确定无限循环的话,必须有一个条件来终结这个循环。能够让循环条件为
2、使用while循环来处理列表和字典:
- for 循环是一种遍历列表的有效方式,但在
for 循环中不应修改列表
,否则将导致Python难以跟踪其中的元素。 - 要在
遍历列表的同时对其进行修改
,可使用while 循环
。- 通过将
while 循环同列表和字典结合起来使用
,可收集、存储并组织大量输入,供以后查看和显示。
- 通过将
2.1、在列表之间移动元素:
-
有一个列表里面有元素, 怎么才可以把他里面的这些元素添加到另一个空列表中?
my_list = ['alice', 'brian', 'candace'] new_list = [] while my_list: cur_list = my_list.pop() # 使用pop()方法的时候, 从my_list列表中, 从末尾的元素删除,pop()删除的值可以赋值给变量cur_list, 依次赋值给cur_list new_list.append(cur_list) # 将变量添加到new_list中 for item in new_list: # 循环new_list 里面就会有跟my_list 相同的元素 print(item) # 输出结果如下: candace brian alice
2.2、删除包含特定值的所有列表元素:
-
使用
remove()
来删除列表中的特定值
,之所以用它,因为要删除的值再列表中只出现了一次
。-
如果要删除列表中所有包含特定值的元素,该怎么办?
my_list = ['cat', 'dog', 'cat', 'goldfish', 'rabbit', 'cat'] # 列表中多个包含'cat' while 'cat' in my_list: # 循环 my_list.remove('cat') print(my_list)
-