跟着NOAI考纲学Python,学完就能考,第6课
每天一个知识点,带你自学NOAI,加入我们吧~
上节课的for循环适合"知道要循环几次"的情况——range(10)就是跑10次。但有些时候你不知道要循环多少次,比如:让用户猜一个数字,猜对才停。这时候就需要while循环。
while:条件成立就一直跑
while的意思是"当……的时候"。只要条件成立,就一直执行循环体。
count = 1 |
第 1 次
第 2 次
第 3 次
拆开看执行过程:
• count从1开始
• 检查 count <= 3?1 <= 3成立,执行循环体,打印"第 1 次",count变成2
• 再检查:2 <= 3成立,打印"第 2 次",count变成3
• 再检查:3 <= 3成立,打印"第 3 次",count变成4
• 再检查:4 <= 3不成立,循环结束
while和if长得很像:都是条件+冒号+缩进。区别是if只执行一次,while会反复执行直到条件不成立。
while和for怎么选?
简单记:
• 知道要循环几次 → 用for + range
• 不知道要循环几次,靠条件控制 → 用while
比如"打印10次Hello"用for更方便,"让用户一直输入直到输入quit"用while更合适。
实战:猜数字
写一个小游戏:心里想一个数(先写死为7),让用户一直猜,猜对才结束:
answer = 7 |
猜一个1到10的数:3
小了
猜一个1到10的数:9
大了
猜一个1到10的数:7
猜对了!
这里while和if配合使用:while控制"猜不对就继续",if控制"给提示"。最后的 print("猜对了!") 没有缩进,在循环外面,只有猜对退出循环后才会执行。
break:提前退出循环
有时候想在循环中途直接退出,不等条件自然变成False。用break:
while True: |
输入内容(输入quit退出):hello
你输入了: hello
输入内容(输入quit退出):quit
拆开看:
• while True 条件永远成立,所以这个循环会一直跑
• 当用户输入"quit"时,break立刻跳出循环,后面的print不执行
• while True + break是一个很常用的模式:"先进来再说,满足条件就退出"
continue:跳过这一轮
continue不是退出整个循环,而是跳过当前这一轮,直接进入下一轮。
for i in range(1, 6): |
1
2
4
5
当i等于3时,continue跳过了后面的print,直接进入i=4那一轮。所以输出里没有3。
break是"不干了,直接走人"。continue是"这轮不算,下一轮继续"。break和continue在for循环和while循环里都能用。
新手最容易犯的错:死循环
危险忘了让条件变化,循环永远停不下来
# 错误写法——死循环! |
count永远是1,1 <= 3永远成立,程序会一直打印1,停不下来。这就叫死循环。
遇到死循环别慌,在香农平台上点"停止"按钮就行。写while循环的时候,一定要确保条件最终会变成False,或者循环里有break能跳出来。
# 正确写法 |
动手试试
|
练习1:预测输出 下面这段代码,输出什么?
提示:x从10开始,每轮减3。x依次是10、7、4、1……什么时候不满足 x > 0? |
|
练习2:找bug 这段代码想让用户输入密码,密码正确("abc123")才放行,但它只让用户输入了一次就结束了。怎么改?
提示:if只判断一次。想"一直问直到对了",应该用什么? |
|
练习3:写代码 写一个程序:让用户不断输入数字,输入0时停止,最后打印所有输入的数字之和(不包括0)。 提示:用while True + break的模式。每次输入后判断是不是0,是就break,不是就累加。 |
自己先想,想完了去香农平台上写代码跑一遍验证。
去平台上手写代码
现在你掌握了两种循环,Python的三大流程控制就齐了:顺序、选择(if)、循环(for/while)。回顾一下:
• while 条件: — 条件成立就一直跑
• break — 直接跳出循环
• continue — 跳过这一轮,继续下一轮
这篇文章讲的是香农NOAI学习平台"Python基础"模块的第六课。平台上有更多的练习题,写完代码点运行,对不对立刻就知道。
香农NOAI学习平台
地址:shannon.arpa.school
微信扫码登录就能用,免费。
找到「Python基础」→「while循环」,从第一道题开始写。
下一篇讲列表——一个变量只能存一个值,列表能存一堆。有了列表,循环就更有用了。