前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编程思想(11):while循环

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

作者头像
蒙娜丽宁
发布2020-06-02 14:51:52
4320
发布2020-06-02 14:51:52
举报
文章被收录于专栏:极客起源极客起源

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

  • while循环
  • for-in循环

本文主要介绍while循环。

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

  • 初始化语句(init_statements):一条或多条语句,用于完成一些初始化工作,例如,初始化循环终止条件中的变量
  • 循环终止条件(test_expression):用于终止循环。如果没有终止条件,那么循环中的代码就会永远执行下去,就是俗称的“死循环”;
  • 循环体(body_statements):要重复执行的代码。如果循环体为空,被称为“空循环”,也就是光循环,不执行任何代码;
  • 迭代语句(iteration_statements):要想循环终止,用于控制循环结束的变量必须要不断变化,迭代语句就是为了控制循环终止条件中的变量的;如果控制不好,仍然可能产生死循环;

下面看一下while循环的语法格式:

代码语言:javascript
复制
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

代码语言:javascript
复制
count = 0
# 当count小于5时,执行循环体
while count < 5 :
    # 循环体
    print("count:", count)
    # 迭代语句
    count += 1
print("循环结束!")

执行这段代码,会输出如下内容:

代码语言:javascript
复制
count: 0
count: 1
count: 2
count: 3
count: 4
循环结束!

如果循环结束条件控制不好,就可能会造成死循环。

代码语言:javascript
复制
# 下面是一个死循环
count = 0
# 当count小于5时,执行循环体
while count < 5 :
    # 循环体
    print("count:", count)

在这段代码中,缺少了迭代代码,这就会造成count变量的值永远是0,所以while循环永远也不会结束,会一直在Console中输出:count:0。

使用while循环也同样需要注意缩进,而且如果缩进有问题,会比if语句造成更严重的后果。if语句顶多就是逻辑出现问题,而while语句很有可能会造成程序进入死循环,让程序死掉。例如,下面的代码,尽管有迭代语句,但由于迭代语句的缩进有问题,所以仍然会造成死循环。

示例代码:while缩进错误.py

代码语言:javascript
复制
# 循环的初始化条件
count = 0
# 当count小于10时,执行循环体
while count < 10:
    print('count的值', count)
count += 1   # 缩进错误,并不属于while循环

下面给出一个完整的例子,这个例子使用while循环迭代列表的元素。通过if语句挑出列表中所有小于18和大于等于18的元素,并分别放到两个新列表中。

代码语言:javascript
复制
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)

运行程序,会输出如下的信息:

代码语言:javascript
复制
小于18岁: [14, 12]
大于等于18岁: [64, 74, 23, 87, 54, 33, 54]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客起源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档