CC++ & Algorithm

Python while 循环基础

中等6
语言版本:C++Python
概述:用while循环让电脑“只要条件满足就一直做”,就像等红绿灯时,红灯一直亮着就一直等。

while循环:让电脑“只要条件满足就一直做”

有时候,电脑需要反复做同一件事,但不知道要重复多少次,只知道“只要条件成立,就一直做下去”。比如说,你站在红绿灯前,只要红灯亮着(条件为真),你就一直等;一旦绿灯亮了,就停止等待。在Python里,用 while 循环 就能实现这种“只要……就一直……”的效果。它像一个不知疲倦的机器人,每做完一次动作就问自己:“还要继续吗?”如果答案是“要”,就再来一次。


1. while循环的格式和基本用法

while 循环的写法很简单:

while 条件:
    重复做的动作
  • 条件:一个判断表达式,结果为 TrueFalse
  • 缩进:循环体(重复做的动作)必须缩进,通常用 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 循环,你就能让电脑做很多“直到……才停”的事情,比如自动重试、输入校验、游戏循环等。试着用它写出属于自己的小项目吧!

例题精讲

1单选题

以下Python代码中,若初始x=0,则while x < 5: x += 1 循环体执行几次?

A4次
B5次
C6次
D无限次
2判断题

在while循环中,如果条件表达式永远为真,则会形成无限循环。

3填空题
使用while循环输出1到5,请填空:
i = 1
while i <= 5:
    print(i)
    ___
4单选题

在while循环中,以下哪个语句可以立即退出循环?

Acontinue
Bbreak
Cpass
Dexit
5填空题
计算1到100的和(包括1和100),使用while循环。填空:
sum = 0
i = 1
while i <= 100:
    sum += i
    ___