自学Python第7天:for循环和while循环——我终于让程序能重复做一件事了

自学Python第7天:for循环和while循环------我终于让程序能重复做一件事了

新手向 | 2026-06-29

如果你还记得第六篇的内容,我写了一个体温检查程序:

python 复制代码
temp = float(input("请输入你的体温:"))
if temp <= 37.5:
    print("体温正常请进!")
else:
    print("体温异常,需要隔离!")

这个程序有一个问题:它只能检查一个人。每次运行只能处理一次输入,然后就结束了。如果有多个人要检查,就得一遍遍运行程序,太麻烦了。

想象一下安检口的场景:保安不会只检查一个人就下班,而是会一直重复"测温→看码→放行/拦截"这个动作,直到最后一个人通过。循环就是程序里的"重复做同一件事"。

今天就来解决这个问题------让程序能重复执行。

一、while循环:不知道要重复多少次的时候

while循环的意思是:当条件成立时,一直重复执行某段代码

先看一个最简单的例子:

python 复制代码
count = 0
while count < 5:
    print(f"第{count + 1}次循环")
    count = count + 1

运行结果:

text 复制代码
第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增加,或者条件永远为真,程序就会无限循环,一直运行下去直到你强制关闭它。

二、无限循环:一个需要小心的坑

来看这段代码:

python 复制代码
count = 0
while count < 5:
    print("第1次循环")
    # 忘记写 count = count + 1

count永远是0,永远小于5,所以这段代码会一直打印"第1次循环",永远不会停止。

这个坑我也踩过 。有一次我写了一个循环,忘记在循环体里更新变量,程序卡在那里一动不动,我还以为是电脑死机了。后来才发现是无限循环。从那以后,我每次写 while 循环都会先确认:循环体里有没有改变条件的语句?

三、while循环的应用:多次体温检测

用while循环改写体温检测程序,让它能检查多个人:

python 复制代码
count = 0
while count < 3:
    print(f"--- 第{count + 1}位 ---")
    temp = float(input("请输入你的体温:"))
    if temp <= 37.5:
        print("体温正常请进!")
    else:
        print("体温异常,需要隔离!")
    count = count + 1

运行结果:

text 复制代码
--- 第1位 ---
请输入你的体温:36.5
体温正常请进!
--- 第2位 ---
请输入你的体温:38.0
体温异常,需要隔离!
--- 第3位 ---
请输入你的体温:37.0
体温正常请进!

这个程序会依次检查三个人,每检查完一个人,count 加 1,直到 count 等于 3 时循环结束。

while 循环适合不知道具体需要重复多少次,只知道"满足某个条件就继续"的场景。 比如猜数字游戏,一直猜直到猜对为止,你不知道用户会猜几次------这种场景用 while 就非常自然。

四、for循环:知道要重复多少次的时候

for循环适合知道具体要重复多少次 的场景,比如遍历一个序列。

先看一个例子:

python 复制代码
for i in range(5):
    print(f"第{i + 1}次循环")

运行结果:

text 复制代码
第1次循环
第2次循环
第3次循环
第4次循环
第5次循环

range(5) 会生成 0、1、2、3、4 这五个数字,for 循环依次把它们取出来赋值给 i,然后执行循环体。

for 循环的好处是不用自己控制结束条件,它会自动在序列结束时停止,不容易出现无限循环

五、range()的三种用法

range()是Python里生成数字序列的工具,有三种写法:

1.range(stop):从0到stop-1

python 复制代码
for i in range(5):
    print(i)   # 0, 1, 2, 3, 4

2.range(start,stop):从start到stop-1

python 复制代码
for i in range(1, 6):
    print(i)   # 1, 2, 3, 4, 5

3.range(start,stop,step):从start到stop-1,步长为step

python 复制代码
for i in range(1, 10, 2):
    print(i)   # 1, 3, 5, 7, 9

六、break:提前结束循环

有时候,循环不需要等到条件不成立才结束,而是在中间某个时刻提前终止。这个时候可以用break。

python 复制代码
count = 0
while count < 10:
    count = count + 1
    if count == 5:
        print("遇到5,提前结束!")
        break
    print(count)

运行结果:

text 复制代码
1
2
3
4
遇到5,提前结束!

当 count 等于 5 时,break 被执行,循环立刻结束,后面的 print(count) 不会再执行。

七、continue:跳过本次循环

continue的作用是跳过本次循环的剩余代码,直接进入下一次循环

python 复制代码
for i in range(5):
    if i == 2:
        continue
    print(i)

运行结果:

text 复制代码
0
1
3
4

当i等于2时,continue被执行,print(i)被跳过,直接进入下一次循环。

八、while和for的区别

while 循环:满足条件就继续,条件不成立就结束。适合不知道需要重复多少次、依赖某个条件是否满足的场景。

for 循环:遍历完序列就结束。适合知道要重复多少次、或要遍历某个数据集合的场景。

场景 推荐用 原因
猜数字直到猜对 while 不知道要猜多少次
打印 1 到 100 for 知道要重复 100 次
遍历列表中的每个元素 for 知道要遍历完整个列表
程序持续运行直到用户退出 while 不知道用户什么时候退出

九、综合示例:猜数字游戏

把今天学的东西串起来,写一个猜数字游戏:

python 复制代码
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} 次!")

运行结果:

text 复制代码
猜数字游戏开始!数字范围是 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,欢迎在评论区告诉我你今天学到了什么,或者遇到了什么报错,一起交流!

相关文章: