首页 / Python3 入门教程 / while 循环

Python3 入门教程

while 循环

本教程共 70 篇 · 第 18 篇 · 更新于 2026-07-22 · 约 2 分钟阅读

PythonPython3 入门教程while循环breakcontinue循环else

18. while 循环

本节目标:掌握 while 循环的写法,理解 break、continue 和循环 else 的用法。

基本语法

while 在条件为真时重复执行代码块:

n = 1
while n <= 5:
    print(n)
    n += 1

输出:

1
2
3
4
5
Warning

循环体内一定要有让条件趋向终止的代码。如果忘了 n += 1,条件永远为真,程序就会陷入死循环。在命令行里按 Ctrl+C 可以强制终止。

计算累加和

用 while 计算 1 到 100 的和:

n = 1
total = 0
while n <= 100:
    total += n
    n += 1
print(total)   # 5050

break:提前退出循环

break 立刻终止整个循环:

n = 1
while n <= 100:
    if n > 10:
        break
    print(n)
    n += 1
print("循环结束")

输出 1 到 10,然后打印「循环结束」。

Tip

break 只跳出它所在的那一层循环。嵌套循环时不会跳出外层。

continue:跳过本次循环

continue 跳过当前轮次的剩余代码,直接进入下一轮判断:

n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print(n)

输出 1、3、5、7、9,跳过了所有偶数。

Note

continue 的位置要小心。如果把它放在 n += 1 前面,条件永远满足,n 永远不变,变成死循环。

循环的 else 子句

Python 的循环可以带 else,在循环正常结束(没有被 break)时执行:

n = 1
while n <= 3:
    print(n)
    n += 1
else:
    print("正常完成")

输出:

1
2
3
正常完成

如果被 break 打断,else 不会执行:

n = 1
while n <= 3:
    if n == 2:
        break
    print(n)
    n += 1
else:
    print("正常完成")    # 不会打印
Tip

这个特性常用于「查找」场景:循环找东西,找到了 break,循环结束后通过 else 判断是否没找到。

i = 0
while i < len(nums):
    if nums[i] == target:
        print(f"找到了,索引是 {i}")
        break
    i += 1
else:
    print("没找到")

while True 循环

故意写个永远为真的条件,在循环体内部用 break 控制退出:

while True:
    user_input = input("请输入(q 退出):")
    if user_input == "q":
        break
    print(f"你输入了:{user_input}")

这种模式在写交互式程序、网络服务接收请求时很常见。

综合练习:猜数字游戏

import random

target = random.randint(1, 100)
attempts = 0

while True:
    guess = int(input("猜一个 1-100 的数字:"))
    attempts += 1

    if guess < target:
        print("猜小了")
    elif guess > target:
        print("猜大了")
    else:
        print(f"恭喜你猜对了!用了 {attempts} 次")
        break

来源:参考了 runoob「Python3 循环语句」、liaoxuefeng「循环」等,改写后所得。