循环语句的作用是重复执行某一段代码,这也是任何编程语言必备的功能之一,因为只有自动重复执行某一段代码,才能真正体现计算机CPU的运算速度。而且循环也是任何复杂程序的重要组成部分,例如AI中就大量包含循环语句,正是这些循环语句,才让基于AI的程序可以快速训练模型,准确识别出猫、狗等图片。在Python中,循环有如下两种:
本文主要介绍while循环。
在讲解while循环之前,先要了解一个循环有哪些主要部分组成。循环的主要组成部分如下:
下面看一下while循环的语法格式:
init_statements
while test_expression:
body_statements
iteration_statements
只有test_expression的值为True时循环体CIA会执行。如果test_expression的值一开始就为False,那么循环体一次都不会执行。通常来讲,iteration_statements应该位于循环体的后面(但有时也会位于循环体中间,没有固定的位置),用于修改test_expression中用于控制循环结束的变量。其实从某种意义上来看,while循环也可以作为if语句使用,只要循环一次后,通过iteration_statements让test_expression的值为False,那么while循环的作用就与if语句完全相同了。
下面是一个简单的while循环。
示例代码:简单的while循环.py
count = 0
# 当count小于5时,执行循环体
while count < 5 :
# 循环体
print("count:", count)
# 迭代语句
count += 1
print("循环结束!")
执行这段代码,会输出如下内容:
count: 0
count: 1
count: 2
count: 3
count: 4
循环结束!
如果循环结束条件控制不好,就可能会造成死循环。
# 下面是一个死循环
count = 0
# 当count小于5时,执行循环体
while count < 5 :
# 循环体
print("count:", count)
在这段代码中,缺少了迭代代码,这就会造成count变量的值永远是0,所以while循环永远也不会结束,会一直在Console中输出:count:0。
使用while循环也同样需要注意缩进,而且如果缩进有问题,会比if语句造成更严重的后果。if语句顶多就是逻辑出现问题,而while语句很有可能会造成程序进入死循环,让程序死掉。例如,下面的代码,尽管有迭代语句,但由于迭代语句的缩进有问题,所以仍然会造成死循环。
示例代码:while缩进错误.py
# 循环的初始化条件
count = 0
# 当count小于10时,执行循环体
while count < 10:
print('count的值', count)
count += 1 # 缩进错误,并不属于while循环
下面给出一个完整的例子,这个例子使用while循环迭代列表的元素。通过if语句挑出列表中所有小于18和大于等于18的元素,并分别放到两个新列表中。
age_list = [12, 54, 14,33, 54, 87, 23, 74, 64]
age1_list = [] # 保存小于18的元素
age2_list = [] # 保存大于等于18的元素
# 只要age_list还有元素,继续执行循环体
while len(age_list) > 0:
# 弹出age_list最后一个元素
age = age_list.pop()
# 如果ele % 2不等于0
if age < 18:
age1_list.append(age) # 添加元素
else:
age2_list.append(age) # 添加元素
print("小于18岁:", age1_list)
print("大于等于18岁:",age2_list)
运行程序,会输出如下的信息:
小于18岁: [14, 12]
大于等于18岁: [64, 74, 23, 87, 54, 33, 54]