Python从入门到精通——3.2 循环结构
前言
首先我们需要了解以下为什么我们要使用循环结构。比如你想要对一个文字重复输出,比如输出9999编,难道你要敲9999个print()吗?这显然是不现实的,你就算复制粘贴也要很长时间。所以我们引入了循环结构,你只需要设置循环条件,以及循环结构中需要执行的操作即可。循环操作的应用面很广,可以和上一章的分支结构相结合来使用。
循环结构就是程序中控制某条或者某些指令重复执行的结构。在Pytho中有for循环和while循环两种。
图片来源:菜鸟教程
while循环
如果不知道具体的循环次数,我们可以使用while循环。while循环的核心就是条件设置,当不满足条件时就跳出循环。while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。
下面我们来看一个GIF动画演示
下面先来看一个例子,利用while循环来进行求和:
可以看到,当while语句的条件满足时,将会一直进行循环操作,直到条件不满足
所以利用这个思想,我们可以进行无限循环,比如让表达式的条件始终为True
这样无限循环最后肯定会让内存爆满从而强行停止,这样是不是可以偷偷做一些事情,我也不知道是什么。可以利用CTRL+C强行退出循环
while else 语句
当while语句结束后,也就是条件表达式为False时,将会执行else后的语句
接下来我们再举一个while循环经典的例子:
上面的break关键字,可以让程序跳出循环,不仅是while循环,后面的for循环也可以跳出,但是break是只能跳出一层循环的
还有个关键字是continue,是指直接放弃当前循环后面的代码,进入下一轮循环
for循环
for循环是很强大的,可以遍历任何可迭代对象,包括一个列表或者一个范围。

上面的例子使用到了for...in语句,一般是遍历某个字符串或者列表等具有一系列单独数据的对象
for循环也可以遍历一个范围,我们一般是利用range()函数
我们先来介绍一下range()函数,我们一般用这个函数来构造一个整数范围,可以是连续的也可以是间隔的,我们先举几个例子
range(101):可以用来产生0到100范围的整数,需要注意的是取不到101。range(1, 101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。range(1, 101, 2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。range(100, 0, -2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
当我们想遍历一个列表等对象时,你可能不知道这个对象的长度,这样我们就可以结合range()和len()函数:

这里再讲一个关键字pass
这个关键字可以用到本节的循环结构中,也可以用到之后需要学习的函数中pass是一个空语句,只是为了保持程序结构完整性,不做任何事情,一般可以理解为跳过,或者空等待。

最后再来几个练习吧
[!NOTE] 练习1: 输入一个正整数判断是不是素数。
提示:素数指的是只能被1和自身整除的大于1的整数。
1 | from math import sqrt |
[!NOTE] 练习2:输入两个正整数,计算它们的最大公约数和最小公倍数。
1 | x = int(input('x = ')) |
[!NOTE] 练习3:打印如下所示的三角形图案。
1 | * |
1 | * |
1 | * |
1 | row = int(input('请输入行数: ')) |
[!NOTE] 练习4:打印乘法口诀表
可以尝试左下三角和右上三角
1 | #左上角 |
- Title: Python从入门到精通——3.2 循环结构
- Author: Dunm1e
- Created at : 2024-09-29 18:26:37
- Updated at : 2024-10-09 23:42:10
- Link: https://dunm1e.github.io/2024/09/29/3670918b968d/
- License: This work is licensed under CC BY-NC-SA 4.0.