Python编程思想(11):while循环

44 篇文章 4 订阅
33 篇文章 47 订阅

《Python编程思想》总目录

上一篇:Python编程思想(10):断言

循环语句的作用是重复执行某一段代码,这也是任何编程语言必备的功能之一,因为只有自动重复执行某一段代码,才能真正体现计算机CPU的运算速度。而且循环也是任何复杂程序的重要组成部分,例如AI中就大量包含循环语句,正是这些循环语句,才让基于AI的程序可以快速训练模型,准确识别出猫、狗等图片。在Python中,循环有如下两种:

  • while循环
  • for-in循环

本文主要介绍while循环。

在讲解while循环之前,先要了解一个循环有哪些主要部分组成。循环的主要组成部分如下:

  • 初始化语句(init_statements):一条或多条语句,用于完成一些初始化工作,例如,初始化循环终止条件中的变量;

  • 循环终止条件(test_expression):用于终止循环。如果没有终止条件,那么循环中的代码就会永远执行下去,就是俗称的“死循环”;

  • 循环体(body_statements):要重复执行的代码。如果循环体为空,被称为“空循环”,也就是光循环,不执行任何代码;

  • 迭代语句(iteration_statements):要想循环终止,用于控制循环结束的变量必须要不断变化,迭代语句就是为了控制循环终止条件中的变量的;如果控制不好,仍然可能产生死循环;

下面看一下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小于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]

小于18岁: [14, 12]
大于等于18岁: [64, 74, 23, 87, 54, 33, 54]

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值