格式:
while test_expression :
body_statements
[iteration_statements]
每次进行while循环前先对test_expression求值,若该表达式求值为ture,则运行循环体body_statements部分,循环体成功运行后再运行迭代语句iteration statement;若为false就不会运行后续的代码。
写while循环的时候要记得检查循环的条件是否会成为死循环。循环体中所有代码保持相同缩进。
常见的while循环用法:
1. while历遍列表和元组(索引法)
由于列表和元组的元素都是有索引的,因此程序可通过 while 循环、列表或元组的索引来遍历列表和元组中的所有元素。
例子如下:
a_tuple = ('fkit', 'crazyit', 'Charli')
i = 0
# 只有i小于len(a_list),继续执行循环体
while i < len(a_tuple):
print(a_tuple[i]) # 根据i来访问元组的元素
i += 1
运行上面程序,可以看到如下输出结果:
fkit crazyit Charli
按照上面介绍的方法,while 循环也可用于遍历列表。
下面示范一个小程序,实现对一个整数列表的元素进行分类,能整除 3 的放入一个列表中;除以 3 余 1 的放入另一个列表中;除以 3 余 2 的放入第三个列表中:
src_list = [12, 45, 34,13, 100, 24, 56, 74, 109]
a_list = [] # 定义保存整除3的元素
b_list = [] # 定义保存除以3余1的元素
c_list = [] # 定义保存除以3余2的元素
# 只要src_list还有元素,继续执行循环体
while len(src_list) > 0:
# 弹出src_list最后一个元素
ele = src_list.pop()
# 如果ele % 2不等于0
if ele % 3 == 0 :
a_list.append(ele) # 添加元素
elif ele % 3 == 1:
b_list.append(ele) # 添加元素
else:
c_list.append(ele) # 添加元素
print("整除3:", a_list)
print("除以3余1:",b_list)
print("除以3余2:",c_list)