Python while 循环基础
中等6while循环:让电脑“只要条件满足就一直做”
有时候,电脑需要反复做同一件事,但不知道要重复多少次,只知道“只要条件成立,就一直做下去”。比如说,你站在红绿灯前,只要红灯亮着(条件为真),你就一直等;一旦绿灯亮了,就停止等待。在Python里,用 while 循环 就能实现这种“只要……就一直……”的效果。它像一个不知疲倦的机器人,每做完一次动作就问自己:“还要继续吗?”如果答案是“要”,就再来一次。
1. while循环的格式和基本用法
while 循环的写法很简单:
while 条件:
重复做的动作
- 条件:一个判断表达式,结果为
True或False。 - 缩进:循环体(重复做的动作)必须缩进,通常用 4 个空格。缩进的代码会反复执行,直到条件变为
False。 - 如果条件一开始就是
False,循环体一次都不会执行。
你可以把 while 想象成一个门卫,他先看条件是否成立(比如“现在是红灯吗?”),如果成立,就放你进去执行里面的代码;执行完后,门卫又回来检查条件,如此反复,直到条件不成立为止。
2. 一个简单的例子:数到5
下面这个程序让电脑从1数到5,每数一个数就打印出来:
count = 1 # 计数从1开始
while count <= 5: # 只要count小于等于5,就继续
print(count) # 打印当前的数字
count = count + 1 # 每循环一次,count增加1
输出:
1
2
3
4
5
这里的 count 就像你手里的计数器,每次加1,直到超过5就停。关键的一步是 count = count + 1,它让条件中的变量逐渐变化,否则循环永远不会结束。
3. 小心无限循环:别让电脑“累死”
如果忘记在循环体里改变条件中使用的变量,电脑就会一直重复同样的动作,永远停不下来——这叫 无限循环。比如下面的代码:
count = 1
while count <= 5:
print(count)
# 忘记写 count = count + 1
# count 永远等于1,条件永远成立 ⇒ 无限循环!
运行这个程序,你会看到屏幕上不停地输出 1,直到你强行关闭程序。这就是“死循环”。所以每次写 while 循环,一定要记得在循环体里修改条件中的变量,让条件最终能变成 False。
小贴士:如果编写程序时不小心进入了无限循环,可以按
Ctrl + C强制终止程序。
4. 生活中的while循环:等公交车
你站在公交站台等车。只要公交车没来(条件为真),你就继续等;一旦车来了,条件变成假,你就不再等。用代码模拟一下:
bus_arrived = False # 车还没来
while not bus_arrived: # 只要车还没来,就继续等
print("继续等车……")
# 假装过了几秒,车来了
bus_arrived = True # 车辆到达,条件改变,循环结束
print("上车!")
输出:
继续等车……
上车!
除了等公交车,生活中还有很多“只要……就一直……”的例子:
- 你存零花钱,只要存款不到买游戏机的钱(比如500元),就继续存。
- 你写作业,只要还有题目没写完,就一直写。
- 你玩游戏,只要生命值大于0,就可以继续玩。
这些都可以用 while 循环来表示。
5. while循环的用处:猜数字游戏
当你不知道要重复多少次时,while 循环最合适。比如猜数字游戏:用户没猜对就继续猜,猜对就退出。
secret = 7 # 秘密数字是7
guess = 0 # 初始猜测设为0,确保进入循环
while guess != secret: # 只要猜的数字不等于秘密数字
guess = int(input("猜一个数字(1-10): ")) # 让用户输入
print("猜对了!")
运行效果:
猜一个数字(1-10): 5
猜一个数字(1-10): 9
猜一个数字(1-10): 7
猜对了!
另一个常见用途是“直到用户输入正确密码”:
password = "123456" # 正确的密码
input_pwd = "" # 用户输入的密码,初始为空字符串
while input_pwd != password: # 只要输入的密码不对,就继续要密码
input_pwd = input("请输入密码: ")
print("密码正确,欢迎进入!")
6. 新手常犯的错误
除了上面提到的忘记更新条件,还有几个容易踩的坑:
❌ 错误1:条件写反了
比如你希望“当分数低于60时继续努力”,结果写成了 while score > 60,这样一开始分数是50,条件就不成立,循环一次都不执行。
❌ 错误2:忘记缩进
count = 1
while count <= 5:
print(count) # 这行没有缩进,会报错
count = count + 1
Python 要求循环体必须缩进,否则会报 IndentationError。
❌ 错误3:在条件里用了赋值号 = 而不是比较符号 ==
while guess = 5: # 这是赋值,不是比较!会报错
...
正确写法应该是 while guess == 5:。
7. 完整可运行的示例:猜硬币正反面
下面是结合 while 循环和随机数的完整程序,你猜硬币是正面还是反面,猜对了就结束,猜错了继续猜。
import random # 导入随机模块
target = random.choice(["正面", "反面"]) # 随机生成正面或反面
guess = "" # 用户猜测,初始为空字符串
print("我们来猜硬币!请猜是正面还是反面。")
while guess != target: # 只要没猜对,就继续
guess = input("请输入「正面」或「反面」: ")
print("恭喜你,猜对了!答案是", target)
运行示例:
我们来猜硬币!请猜是正面还是反面。
请输入「正面」或「反面」: 正面
请输入「正面」或「反面」: 反面
恭喜你,猜对了!答案是 反面
8. 相关指引
while 循环是 Python 中最基本的两种循环之一(另一种是 for 循环)。如果你想更灵活地控制循环,可以学习:
break语句:在循环里提前跳出循环(比如遇到特定数字就停止)。continue语句:跳过本次循环的剩余部分,直接进入下一次条件判断。for循环:适用于知道要重复多少次,或者要遍历一个序列(比如列表、字符串)。
掌握了 while 循环,你就能让电脑做很多“直到……才停”的事情,比如自动重试、输入校验、游戏循环等。试着用它写出属于自己的小项目吧!
例题精讲
以下Python代码中,若初始x=0,则while x < 5: x += 1 循环体执行几次?
在while循环中,如果条件表达式永远为真,则会形成无限循环。
使用while循环输出1到5,请填空:
i = 1
while i <= 5:
print(i)
___在while循环中,以下哪个语句可以立即退出循环?
计算1到100的和(包括1和100),使用while循环。填空:
sum = 0
i = 1
while i <= 100:
sum += i
___