while循环

while循环是Python中非常重要的重复执行代码的方式,它会在条件满足时不断重复执行代码块,就像旋转木马一样一圈又一圈地运行。

什么时候使用while循环?

当你不知道需要循环多少次,但知道在什么条件下应该停止时,while循环是最佳选择!

while循环基本语法

while循环的基本结构非常简单:

while 条件: # 要重复执行的代码 # 这里可以有多行代码

让我们分解一下:

  • while - 关键字,表示开始一个while循环
  • 条件 - 这是一个表达式,每次循环前都会被检查
  • 冒号(:) - 表示后面是循环体
  • 缩进 - 循环体中的代码必须缩进(通常是4个空格)
重要注意事项

在while循环中,必须有改变循环条件的代码,否则循环将永远执行下去,称为"死循环"!

while循环执行过程

理解while循环的执行顺序非常重要:

步骤 说明
1 检查条件是否为True
2 如果为True,执行循环体内的代码
3 执行完循环体后,再次检查条件
4 如果条件仍为True,重复步骤2-3
5 如果条件为False,退出循环,执行后面的代码
记忆小技巧

可以把while循环想象成一个严格的守门人:

"当(while)大门开着,我就让你进去;如果门关了,你就不能进来"

while循环实例

让我们通过几个例子来理解while循环:

示例1:计数循环
# 从1数到5
count = 1 # 设置计数器

while count <= 5:
    print("计数:", count)
    count += 1 # 每次增加1

print("计数完成!")

输出结果:

计数: 1
计数: 2
计数: 3
计数: 4
计数: 5
计数完成!
示例2:用户输入验证
# 要求用户输入密码
password = "" # 初始为空
correct_password = "123abc" # 正确的密码

while password != correct_password:
    password = input("请输入密码: ")
    if password != correct_password:
        print("密码错误,请重试!")

print("密码正确,欢迎进入系统!")

这个程序会一直要求输入密码,直到输入正确为止。

示例3:游戏循环
# 简单的猜数字游戏
import random

secret_num = random.randint(1, 10) # 生成1-10的随机数
guess = 0
attempts = 0

print("猜数字游戏!我想了一个1到10之间的数字")

while guess != secret_num:
    guess = int(input("你的猜测: "))
    attempts += 1
    
    if guess < secret_num:
        print("太小了!再试一次")
    elif guess > secret_num:
        print("太大了!再试一次")

print(f"恭喜!你在{attempts}次尝试后猜对了!")

避免死循环

死循环是while循环中最常见的问题,它会永远执行下去:

# 危险!死循环示例
while True:
    print("这个循环永远不会停止!")
死循环警告

如果你不小心创建了死循环:

  • 程序永远不会停止
  • 可能会使电脑变慢
  • 在某些环境中会崩溃

解决方法:按Ctrl+C可以强制停止Python程序

while循环的特殊控制

在while循环中,你可以使用两个特殊的命令来控制循环:

命令 说明 示例
break 立即退出整个循环
while True:
    if 条件:
        break
continue 跳过本次循环剩余代码,进入下一次循环
while 条件:
    if 特殊情况:
        continue
    # 其他代码
break和continue示例
# 输入数字,直到输入0停止
while True:
    num = int(input("输入一个数字(0结束): "))
    
    # 检查是否结束
    if num == 0:
        break # 退出循环
    
    # 如果是负数,跳过本次循环
    if num < 0:
        print("负数被跳过!")
        continue
    
    # 处理正数
    print(f"{num}的平方是:", num * num)

print("程序结束")

while循环 vs for循环

理解while循环和for循环的区别非常重要:

特点 while循环 for循环
使用场景 条件不确定时 遍历已知序列
循环次数 不确定 确定(序列长度)
循环控制 条件表达式 迭代序列
典型应用 用户输入验证、游戏循环 遍历列表、字符串处理
选择循环的技巧

问自己:"我知道循环需要执行多少次吗?"

  • 如果知道 ➜ 使用for循环
  • 如果不知道 ➜ 使用while循环

练习时间

练习1:倒计时程序

编写一个程序,要求用户输入一个正整数,然后从这个数开始倒计时到0。

示例:如果输入5,输出应为:5、4、3、2、1、0

# 获取起始数字
num = int(input("请输入一个正整数: "))

while num >= 0:
    print(num)
    num -= 1 # 数字减少1

print("倒计时结束!")

练习2:数字求和

编写程序,不断要求用户输入数字,直到输入"0"为止,然后计算并打印所有输入数字的总和。

total = 0 # 初始化总和

while True:
    num_str = input("输入一个数字(0结束): ")
    
    # 检查是否输入0
    if num_str == "0":
        break
    
    # 转换为数字并累加
    num = float(num_str)
    total += num

print(f"所有数字的总和是: {total}")