
如果你还记得第六篇的内容我写了一个体温检查程序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变成13.count 1条件count 5成立继续循环4.一直到count 5条件count 5不成立循环结束关键点while循环需要自己控制结束条件。如果忘记让count增加或者条件永远为真程序就会无限循环一直运行下去直到你强制关闭它。二、无限循环一个需要小心的坑来看这段代码count 0 while count 5: print(第1次循环) # 忘记写 count count 1count永远是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-1for i in range(5): print(i) # 0, 1, 2, 3, 42.range(start,stop):从start到stop-1for i in range(1, 6): print(i) # 1, 2, 3, 4, 53.range(start,stop,step):从start到stop-1步长为stepfor 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 到 100for知道要重复 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-1range(3) → 0,1,2range(a,b)生成 a 到 b-1range(2,5) → 2,3,4range(a,b,c)生成 a 到 b-1步长 crange(1,10,2) → 1,3,5,7,9break提前结束整个循环if 条件: breakcontinue跳过本次继续下一次循环if 条件: continue什么时候用哪种循环·不知道要重复多少次只知道条件 → while·知道要重复多少次 → for·需要提前结束 → break·只需要跳过某一次 → continue下一篇我打算学函数。这也是基础阶段的最后一个重要概念了——学完它前面学的变量、判断、循环就能真正串联起来了。