1. 引言

while 循环是一种 基于条件 的循环,适用于 不确定循环次数 的场景。当 条件为 True,循环体中的代码会不断执行,直到条件变为 False


2. while 语法结构

基本语法:

while 条件:
    代码块

执行流程:

  1. 判断条件 是否为 True
  2. 若条件满足,则执行 循环体代码,然后回到 条件判断
  3. 若条件变为 False,则退出循环。

3. while 循环示例

3.1 计算 1-5 的累加和

sum = 0
i = 1
while i <= 5:
    sum += i
    i += 1
print(f"总和: {sum}")

输出:

总和: 15


3.2 无限循环

如果 while 条件始终为 True,则 循环不会结束,形成无限循环。

while True:
    print("这是一条死循环!")

⚠️ 注意:要小心使用 无限循环,通常需要 break 语句 来手动终止循环。


3.3 while + input() 实现用户交互

while True:
    user_input = input("请输入 'exit' 退出: ")
    if user_input == "exit":
        print("循环结束!")
        break
    print(f"你输入的是:{user_input}")

示例运行:

请输入 'exit' 退出: hello
你输入的是:hello
请输入 'exit' 退出: exit
循环结束!


4. break 语句:终止 while 循环

break 语句 立即终止 while 循环,后续代码不会执行。

示例:找到第一个 3 并退出

i = 1
while i <= 5:
    if i == 3:
        print("找到 3,退出循环")
        break
    print(i)
    i += 1

输出:

1
2
找到 3,退出循环


5. continue 语句:跳过当前循环

continue 语句用于 跳过当前循环的剩余部分,直接进入下一次循环

示例:跳过偶数

i = 0
while i < 5:
    i += 1
    if i % 2 == 0:
        continue  # 跳过偶数
    print(i)

输出:

1
3
5


6. elsewhile 配合使用

Python 允许 while 语句后跟 else 语句,只有当循环 正常结束(没有 break 退出) 时,else 代码块才会执行。

示例 1:循环正常结束

i = 1
while i < 4:
    print(i)
    i += 1
else:
    print("循环正常结束")

输出:

1
2
3
循环正常结束

示例 2:使用 breakelse 不执行

i = 1
while i < 4:
    if i == 2:
        break
    print(i)
    i += 1
else:
    print("循环正常结束")

输出:

1

break 终止循环,else 代码未执行。)


7. pass 语句:占位符

pass 语句 什么都不做,仅作为 语法占位符,适用于 循环体暂时不写具体代码 的情况。

i = 0
while i < 5:
    i += 1
    if i == 3:
        pass  # 未来补充代码
    else:
        print(i)

输出:

1
2
4
5

i == 3 时,pass 语句不执行任何操作。)


8. while 循环嵌套

可以在 while 循环内部再嵌套一个 whilefor 循环。

示例:输出 5×5 矩阵

i = 1
while i <= 5:
    j = 1
    while j <= 5:
        print(f"{i*j:2}", end=" ")  # 格式化输出
        j += 1
    print()
    i += 1

输出:

 1  2  3  4  5
 2  4  6  8 10
 3  6  9 12 15
 4  8 12 16 20
 5 10 15 20 25


9. while 循环生成列表

示例 1:将 while 结果存入列表

i = 1
numbers = []
while i <= 5:
    numbers.append(i * 2)
    i += 1
print(numbers)

输出:

[2, 4, 6, 8, 10]

示例 2:列表推导式代替 while

numbers = [i * 2 for i in range(1, 6)]
print(numbers)

输出:

[2, 4, 6, 8, 10]


10. 总结

  • while 语句:适用于 循环次数不确定 的情况。
  • break 语句:用于 提前终止循环
  • continue 语句:用于 跳过当前循环,直接进入下一次循环。
  • else 语句:在 while 正常结束时 执行。
  • pass 语句:作为 占位符,暂时不执行任何操作。
  • 嵌套 while:用于 双层循环 场景,如 表格、九九乘法表
  • 列表推导式:可用来 替代 while 构建列表

掌握 while 循环可以提高代码的 可控性灵活性,在 用户输入交互、数据处理、爬虫 等领域广泛应用! 🚀