Python中循环的介绍
什么是循环
现实生活中,也有很多循环的应用场景:
(1)老师批改作业:拿起作业本→查看答案→批改打分→放回作业本,重复以上过程,直到所有学生的作业都批改完了
(2)收银员收款:接过顾客商品→扫码计价→收取钱款→打印小票,重复以上过程,直到所有排队顾客都完成付款。
(3)环卫工人扫地:拿起扫帚→清扫路面→收集垃圾→移动到下一段路面,重复以上过程,直到负责区域清扫完毕。
(4)学生晨读:打开课本→朗读段落→标记重点→继续朗读,重复以上过程,直到晨读时间结束。
以上场景都有一个共同的特点:有条件地重复地做一件事,每一次做的事情不同但类似。
程序是为了解决实际问题的,实际问题中存在着重复动作,那么程序中也应该有相应的描述,这就是循环。
循环的作用
循环的作用是什么?
答:让代码高效的重复执行,避免重复编写大量相同或相似的代码,提升编程效率。
循环的种类
在Python中,循环一共分为两大类:while循环与for循环
思考问题:while循环和for循环如何选择呢?
①:对于循环次数固定的(已知)情况下,建议使用for循环, 例如: 打印1~10的数字
②:对于循环次数未知(不确定)的情况下,建议使用while循环, 例如: 猜数字游戏
while循环语法及其应用
while循环的基本语法
1 | # Step1: 定义一个计数器(初始化一个计数器) |
普及小知识:在计算机程序中,计数器大部分都是从0开始的,少数场景会从1开始,根据需求灵活选择。
总结:while循环三步走
① 初始化计数器
② 编写循环条件(判断计数器是否达到了目标位置)
③ 在循环内部更新计数器
while循环入门案例:使用while循环,循环输出5遍“Python真有趣”
1 | # 演示 while循环 |
while循环流程图:

while循环案例
案例1:使用while循环求1..50的和
分析:定义一个while循环,让其可以帮助我们计算 1 + 2 + 3 + 4 + 5 … + 50,结果:1275
1 | # 需求: 求 1~50的和 |
案例2:求1~50之间,所有奇数的和
什么是奇数:所谓的奇数,就是不能被2整除的数字,数学中可以使用2n+1来表示奇数。(Python代码 => if 数值 % 2 != 0 代表它是一个奇数)
知识点:在while循环中,我们还可以结合if进行判断,筛选出符合条件的数据。
1 | # 需求2: 求1~50之间,所有奇数的和 不能被2 整除的 就是奇数(余数不为0) |
循环中的两大关键词
两大关键词
在Python循环中,经常会遇到两个常见的关键词:break 与 continue
break:代表终止整个循环结构,一旦执行,直接退出循环,不再执行后续循环体内容。
continue:代表中止当前本次循环,跳过本次循环剩余内容,继续执行下一次循环。
- 举个栗子
1 | 举例:老师检查6本作业,检查完第一本,检查第二本…,这里"检查作业"的动作是不是重复执行? |
6.1.1 break关键字
场景一:如果检查过程中,发现第三本作业空白未写,无需再检查后续作业,直接停止检查,这里就是break控制循环流程,即终止此循环。
1 | # 演示 break: 实现中断循环 直接退出循环操作 |
6.1.2 continue关键字
场景二:如果检查过程中,发现第三本作业有少量错误,标注错误后跳过这本,继续检查第四本作业,这里就是continue控制循环流程,即退出当前一次循环继而执行下一次循环代码。
1 | # 演示 continue: 跳过本次循环, 进入下一次循环 |
如果在使用continue的时候,不手工更新计数器会有什么后果呢?
答:会出现死循环(计数器一直停留在满足continue条件的数值上,永远无法满足循环结束条件),建议使用Debug调试工具观看执行过程。
死循环概念
在编程中一个靠自身控制无法终止的程序称为“死循环”,死循环会一直占用计算机资源,开发中应尽量避免。
在Python中,我们也可以使用while True来模拟死循环:
1 | # 注意 如果条件永久成立, 那么这个循环也被成为 死循环 |
while循环案例:猜数字
案例需求
编写一个Python程序,系统提前设定一个1到20之间的固定整数(如12),让用户反复输入数字猜测,每次输入后提示“猜大了”“猜小了”或“猜对了”,直到用户猜对为止,猜对后提示游戏结束,不使用任何异常相关知识。
实现思路
① 编写死循环,满足“猜对”条件后终止循环。
② 提前设定一个固定整数(如12)作为答案,无需随机生成(避开未学的random模块)。
③ 让用户输入数字,通过if判断输入数字与答案的大小关系,给出对应提示,猜对则终止循环。
代码实现
1 | # 演示 猜数字游戏(无random、无异常,适合未学相关知识的学生) |
扩展: 要求增加限制次数(3次), 并且要提示用户还剩余几次猜测机会: 仅做了解即可, 可以尝试写一写(对理解 while 和 if 很有作用)
1 | # 演示 猜数字游戏(限制次数版,无random、无异常) |
for循环基本语法及其应用
for循环基本语法
for循环结构主要用于(序列 => 字符串、列表、元组、集合以及字典)类型数据的遍历(循环)操作,无需手动定义和更新计数器,使用起来更简洁。
for循环主要用于序列类型数据的循环操作(遍历操作)
另外当循环次数已知的情况,建议使用for循环(比while循环更简洁)。
1 | for 临时变量 in 序列: |
案例:使用for循环遍历字符串”python”
1 | # 演示: for基本使用 |
使用Debug调试以上代码可知:for循环功能非常强大,可以自动判断序列的长度,长度为多少,则for循环就循环多少次。每次循环时,系统会自动将序列中的每个元素赋值给临时变量,赋值完成后,for循环内部会自动更新计数器,向后移动一位,继续循环,直至元素全部循环结束。
range方法(函数)
在Python3中 range() 函数返回的是一个可迭代对象(类型是对象)(由于我们还未学习面向对象,为了方便大家理解,你可以简单的将其理解为一个序列结构)
主要作用:用于生成一段连续的整数序列,方便配合for循环使用。
基本语法:
1 | range(stop) |
案例:for循环与range方法,使用for循环,循环4次
1 | # 演示 range函数 |
for循环案例
案例: 使用for循环,求1 ~ 50之间所有奇数的和
1 | # 需求: 求 1~50 之间 所有的奇数之和 |
综合案例:使用for循环实现用户名+密码认证-作业
案例:用for循环实现用户登录
① 输入用户名和密码
② 判断用户名和密码是否正确(username=’student’,password=’python123’)
③ 登录仅有2次机会,超过2次会提示“登录失败,次数已用完”
分析:用户登陆情况有3种:
① 用户名错误(此时便无需判断密码是否正确) – 登陆失败
② 用户名正确 密码错误 –登陆失败
③ 用户名正确 密码正确 –登陆成功
1 | # 用户登录案例(for循环版) |
for循环中的else结构
为什么需要在for循环中添加else结构
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码(即没有被break终止,完整执行完所有循环次数)。
强调:’正常结束’,非正常结束(如遇到break、程序异常),其else中的代码是不会执行的。
for循环结构中的else结构
基本语法:
1 | for 临时变量 in 序列: |
break关键字对for…else结构的影响
1 | str1 = 'python' |
运行结果:只会打印p、y、t,然后打印“遇h强制结束循环”,else中的代码不会执行(因为循环被break终止,属于非正常结束)。
continue关键字对for…else结构的影响
1 | str1 = 'python' |
运行结果:打印p、y、t、遇h不打印、o、n,最后打印“循环正常结束之后执行的代码”(continue只是跳过本次循环,循环整体正常结束)。
else结构整体演示
1 | # 演示: for循环结合else情况 |
循环要求
- 1- 能够分别使用 for和while 实现 1~50 循环操作
- 2- 能够分别使用 for 和 while 完成 求 奇数之和的案例
双层循环
for循环里可以嵌套for循环以及while循环,while循环中也可以嵌套for循环和while循环
for循环嵌套for循环
1 | for 临时变量1 in 序列1: |
for循环嵌套while循环
1 | for 临时变量1 in 序列1: |
while循环嵌套while循环
1 | index = 初始值 |
while循环嵌套for循环
1 | index = 初始值 |
双层循环经常用来控制双层遍历的情况,比如打印九九乘法表
1
2 >双层循环,如果内层循环使用了break,break只能跳出
>它所在的循环,也就是内层循环


1 | ''' |