从零开始学Python系列课程第13课:Python中的循环结构(上)

2023-12-13 06:21:47

流程图.jpg

一、循环结构的应用场景及分类

我们在编写程序时,一定会遇到需要重复执行某些指令的场景。举一个简单的例子,在前面讲分支结构时以游戏通关为例,如果第一关结束时分值不够则通关失败需要重新闯关,重新闯关这就是一个重复性的动作,类似的还有很多相似场景,代入编程中就可以使用循环来解决这类问题,这就是我们今天要讲的“循环结构”。
所谓循环结构,就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是使用 for、in 关键字构造for-in循环,另一种是使用 while 关键字构造while循环

二、循环的构造讲解

for-in 循环

如果明确的知道问题需要重复的次数,我们推荐使用 for-in 循环来解决,同时 for-in 循环也是 Python 中非常常用的一种循环结构,for-in 循环适用于绝大部分问题。
举个简单的小例子,将“hello,world”重复打印 100 次:

for i in range(100):
    print("hello,world")

对上述代码做出解释:
(1)其中 range 是一个专门用来构造有规律的整数容器的方法,在此的 range(100)构造出来的是 [0, 99] 范围的容器,具体的 range 用法下篇文章来讲;
(2)for-in 循环结构循环次数取决于 in 关键字后面容器的长度,在此 range(100)构造出来的是包含 0~99 的容器,所以此处 for-in 循环执行 100 次;
(3)for-in 循环每执行一次,for 关键字后面的变量(此处为 i)就会在容器中拿出一个元素赋值;
(4)for-in 循环每执行一次,缩进中的代码块就会执行一遍。
由此大家记住 for-in 循环的语法:

for 变量 in 容器:
    代码块

while 循环

如果问题没有明确的循环次数,建议使用 while 循环。 while 循环通过一个能够产生 bool 值的表达式来控制循环,当表达式的值为 True 时继续循环,值为 False 时结束循环。
举个小例子:我们通过一个“猜数字”的小游戏来看看如何使用while循环。游戏规则:程序随机选取一个 1~100 之间的整数,玩家输入自己猜的数字,计算机给出对应的提示(再大一点、再小一点或者是猜中了),如果玩家猜中了数字,提示游戏结束。

import random

result = random.randint(1, 100)

flag = True
while flag:
    number = int(input('请输入:'))
    if number < result:
        print('再大一点')
    elif number > result:
        print('再小一点')
    else:
        print('恭喜你猜对了,游戏结束!')
        flag = False

对上述代码做出解释:
(1)random 模块是 Python 中的一个随机模块,我们借助其中的 randint 方法从 1~100 之间随机生成了一个整数;
(2)flag 这个变量便是一个表达式,用于控制 while 循环能否执行,每次 while 循环执行前都要判断 flag 的值是否为 True;
(3)当猜对后将 flag 的值由 True 变为 False,即可结束掉 while 循环,什么时候判断猜对便是由上节课讲的分支结构来判断。
我们再来介绍 while 循环的语法结构:

while 表达式:
    代码块

以上便是常用的循环结构的讲解,后续还会有习题供大家练习。

三、循环关键字 break 和 continue

我们人生不能永远停留在重复的事情上,程序也是如此,并不是说程序必须在设定的循环次数运行完以后停止,有时程序也要被及时中断,所以循环该停掉时就要做到当机立断,这里我们介绍 break 和 continue 两个循环关键字,帮助你在编程中更好的让程序“停止”。

  • break:在循环中如果 break 关键字被触发,break 所在的那一层循环立即结束。
  • continue:在循环中如果 continue 关键字被触发,continue 所在的那一层循环立即结束当前循环进入下一次循环。

我们举一个例子,来对比 break 和 continue:

for i in range(1, 6):
    if i == 3:
        print('***')
        continue
        print('+++')
    else:
        print(i)
"""
1
2
***
4
5
"""

for i in range(1, 6):
    if i == 3:
        print('***')
        break
        print('+++')
    else:
        print(i)
"""
1
2
***
"""

上述我们分别给出来两段代码和运行结果,大家可以看到+++是没有被打印的,证明了两个关键字立即结束的作用;continue 打印了 4 和 5 而 break 没有打印 4 和 5,证明了 break 是立刻结束循环而 continue 还可以进入下一次循环。

四、总结

Python 中的循环结构(上)给大家讲述的就是基础中比较重要的知识点了,希望大家在学习之余还能够自行搜寻更多的资料,争取早日融会贯通。

文章来源:https://blog.csdn.net/weixin_42788769/article/details/134958677
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。