自学Python第7天:for循环和while循环——我终于让程序能重复做一件事了
自学Python第7天:for循环和while循环——我终于让程序能重复做一件事了
新手向 | 2026-06-29
如果你还记得第六篇的内容,我写了一个体温检查程序:
temp = float(input("请输入你的体温:"))
if temp <= 37.5:
print("体温正常请进!")
else:
print("体温异常,需要隔离!")
这个程序有一个问题:它只能检查一个人。每次运行只能处理一次输入,然后就结束了。如果有多个人要检查,就得一遍遍运行程序,太麻烦了。
想象一下安检口的场景:保安不会只检查一个人就下班,而是会一直重复“测温→看码→放行/拦截”这个动作,直到最后一个人通过。循环就是程序里的“重复做同一件事”。
今天就来解决这个问题——让程序能重复执行。
一、while循环:不知道要重复多少次的时候
while循环的意思是:当条件成立时,一直重复执行某段代码。
先看一个最简单的例子:
count = 0
while count < 5:
print(f"第{count + 1}次循环")
count = count + 1
运行结果:
第1次循环
第2次循环
第3次循环
第4次循环
第5次循环
这段代码的逻辑是:
1.count = 0,条件count < 5成立,进入循环;
2.打印"第1次循环",然后count变成1;
3.count = 1,条件count < 5成立,继续循环;
4.一直到count = 5,条件count < 5不成立,循环结束
关键点:while循环需要自己控制结束条件。如果忘记让count增加,或者条件永远为真,程序就会无限循环,一直运行下去直到你强制关闭它。
二、无限循环:一个需要小心的坑
来看这段代码:
count = 0
while count < 5:
print("第1次循环")
# 忘记写 count = count + 1
count永远是0,永远小于5,所以这段代码会一直打印"第1次循环",永远不会停止。
这个坑我也踩过。有一次我写了一个循环,忘记在循环体里更新变量,程序卡在那里一动不动,我还以为是电脑死机了。后来才发现是无限循环。从那以后,我每次写 while 循环都会先确认:循环体里有没有改变条件的语句?
三、while循环的应用:多次体温检测
用while循环改写体温检测程序,让它能检查多个人:
count = 0
while count < 3:
print(f"--- 第{count + 1}位 ---")
temp = float(input("请输入你的体温:"))
if temp <= 37.5:
print("体温正常请进!")
else:
print("体温异常,需要隔离!")
count = count + 1
运行结果:
--- 第1位 ---
请输入你的体温:36.5
体温正常请进!
--- 第2位 ---
请输入你的体温:38.0
体温异常,需要隔离!
--- 第3位 ---
请输入你的体温:37.0
体温正常请进!
这个程序会依次检查三个人,每检查完一个人,count 加 1,直到 count 等于 3 时循环结束。
while 循环适合不知道具体需要重复多少次,只知道“满足某个条件就继续”的场景。 比如猜数字游戏,一直猜直到猜对为止,你不知道用户会猜几次——这种场景用 while 就非常自然。
四、for循环:知道要重复多少次的时候
for循环适合知道具体要重复多少次的场景,比如遍历一个序列。
先看一个例子:
for i in range(5):
print(f"第{i + 1}次循环")
运行结果:
第1次循环
第2次循环
第3次循环
第4次循环
第5次循环
range(5) 会生成 0、1、2、3、4 这五个数字,for 循环依次把它们取出来赋值给 i,然后执行循环体。
for 循环的好处是不用自己控制结束条件,它会自动在序列结束时停止,不容易出现无限循环。
五、range()的三种用法
range()是Python里生成数字序列的工具,有三种写法:
1.range(stop):从0到stop-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4
2.range(start,stop):从start到stop-1
for i in range(1, 6):
print(i) # 1, 2, 3, 4, 5
3.range(start,stop,step):从start到stop-1,步长为step
for i in range(1, 10, 2):
print(i) # 1, 3, 5, 7, 9
六、break:提前结束循环
有时候,循环不需要等到条件不成立才结束,而是在中间某个时刻提前终止。这个时候可以用break。
count = 0
while count < 10:
count = count + 1
if count == 5:
print("遇到5,提前结束!")
break
print(count)
运行结果:
1
2
3
4
遇到5,提前结束!
当 count 等于 5 时,break 被执行,循环立刻结束,后面的 print(count) 不会再执行。
七、continue:跳过本次循环
continue的作用是跳过本次循环的剩余代码,直接进入下一次循环。
for i in range(5):
if i == 2:
continue
print(i)
运行结果:
0
1
3
4
当i等于2时,continue被执行,print(i)被跳过,直接进入下一次循环。
八、while和for的区别
while 循环:满足条件就继续,条件不成立就结束。适合不知道需要重复多少次、依赖某个条件是否满足的场景。
for 循环:遍历完序列就结束。适合知道要重复多少次、或要遍历某个数据集合的场景。
| 场景 | 推荐用 | 原因 |
|---|---|---|
| 猜数字直到猜对 | while | 不知道要猜多少次 |
| 打印 1 到 100 | for | 知道要重复 100 次 |
| 遍历列表中的每个元素 | for | 知道要遍历完整个列表 |
| 程序持续运行直到用户退出 | while | 不知道用户什么时候退出 |
九、综合示例:猜数字游戏
把今天学的东西串起来,写一个猜数字游戏:
import random
# 生成一个 1-100 的随机数
secret = random.randint(1, 100)
guess = None
count = 0
print("猜数字游戏开始!数字范围是 1-100")
while guess != secret:
guess = int(input("请输入你猜的数字:"))
count = count + 1
if guess < secret:
print("太小了,再大一点!")
elif guess > secret:
print("太大了,再小一点!")
else:
print(f"恭喜你,猜对了!你一共猜了 {count} 次!")
运行结果:
猜数字游戏开始!数字范围是 1-100
请输入你猜的数字:50
太小了,再大一点!
请输入你猜的数字:75
太大了,再小一点!
请输入你猜的数字:62
恭喜你,猜对了!你一共猜了 3 次!
这段代码包含了:
·while 循环:直到猜对才结束;
·break 循环条件:用 guess != secret 控制,猜对后条件变为假,循环自然结束;
·if-elif-else 判断:提示大了或小了;
·计数器:记录猜测次数;
小结
把今天学的东西,整理成一张速查表:
| 知识点 | 作用 | 示例 |
|---|---|---|
| while 循环 | 条件成立时一直执行 | while count < 5: |
| for 循环 | 遍历序列 | for i in range(5): |
| range(n) | 生成 0 到 n-1 | range(3) → 0,1,2 |
| range(a,b) | 生成 a 到 b-1 | range(2,5) → 2,3,4 |
| range(a,b,c) | 生成 a 到 b-1,步长 c | range(1,10,2) → 1,3,5,7,9 |
| break | 提前结束整个循环 | if 条件: break |
| continue | 跳过本次,继续下一次循环 | if 条件: continue |
什么时候用哪种循环?
·不知道要重复多少次,只知道条件 → while
·知道要重复多少次 → for
·需要提前结束 → break
·只需要跳过某一次 → continue
下一篇我打算学函数。这也是基础阶段的最后一个重要概念了——学完它,前面学的变量、判断、循环就能真正串联起来了。
如果你也在学Python,欢迎在评论区告诉我你今天学到了什么,或者遇到了什么报错,一起交流!
相关文章:

浙公网安备 33010602011771号