Logo
Published on

2.12.while循环

Authors
  • avatar
    Name
    xiaobai
    Twitter

1.什么是 while 循环?

while 循环是 Python 中的一种控制流语句,用于在满足特定条件时重复执行一段代码块。只要条件为 True,循环就会一直执行。

2.基本语法

while 条件表达式:
    # 循环体代码块

3.简单示例

# 示例1:基础用法
count = 1
while count <= 5:
    print(f"这是第 {count} 次循环")
    count += 1  # 重要:更新计数器,避免无限循环

# 输出:
# 这是第 1 次循环
# 这是第 2 次循环
# 这是第 3 次循环
# 这是第 4 次循环
# 这是第 5 次循环

4.while 循环的关键要素

4.1.条件表达式

  • 在每次循环开始前检查
  • 如果为 True,执行循环体
  • 如果为 False,退出循环

4.2.循环体

  • 需要重复执行的代码
  • 必须缩进(通常是4个空格)

4.3.条件更新

  • 必须在循环体内更新条件变量
  • 否则会导致无限循环

5.常见应用场景

5.1.计数器循环

# 计算1到100的和
total = 0
num = 1
while num <= 100:
    total += num
    num += 1
print(f"1到100的和是:{total}")

5.2.用户输入验证

# 要求用户输入有效数字
while True:
    user_input = input("请输入一个正整数:")
    if user_input.isdigit() and int(user_input) > 0:
        print(f"您输入的数字是:{user_input}")
        break
    else:
        print("输入无效,请重新输入!")

5.3.处理列表数据

# 使用while循环遍历列表
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
index = 0
while index < len(fruits):
    print(fruits[index])
    index += 1

6.控制循环的特殊语句

6.1.break - 立即退出循环

# 找到第一个能被7整除的数
num = 1
while num <= 20:
    if num % 7 == 0:
        print(f"找到第一个能被7整除的数:{num}")
        break
    num += 1

6.2.continue - 跳过当前迭代

# 打印1-10中的奇数
num = 0
while num < 10:
    num += 1
    if num % 2 == 0:
        continue  # 如果是偶数,跳过本次循环的剩余部分
    print(num)

6.3.else 子句

# while循环可以有一个else子句
count = 1
while count <= 3:
    print(f"循环第 {count} 次")
    count += 1
else:
    print("循环正常结束(不是通过break退出)")

7.实际应用示例

7.1.示例1:猜数字游戏

import random

secret_number = random.randint(1, 100)
attempts = 0
max_attempts = 7

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

while attempts < max_attempts:
    guess = int(input("请输入你的猜测:"))
    attempts += 1
    
    if guess < secret_number:
        print("太小了!")
    elif guess > secret_number:
        print("太大了!")
    else:
        print(f"恭喜!你在第 {attempts} 次猜对了!")
        break
else:
    print(f"游戏结束!正确答案是 {secret_number}")

7.2.示例2:菜单系统

def show_menu():
    print("\n=== 菜单系统 ===")
    print("1. 查看信息")
    print("2. 修改信息")
    print("3. 退出系统")

while True:
    show_menu()
    choice = input("请选择操作(1-3):")
    
    if choice == "1":
        print("显示信息...")
    elif choice == "2":
        print("修改信息...")
    elif choice == "3":
        print("感谢使用,再见!")
        break
    else:
        print("无效选择,请重新输入!")

8.注意事项

  1. 避免无限循环:确保循环条件最终会变为 False正确缩进:循环体内的所有代码必须正确缩进
  2. 更新条件变量:在循环体内更新影响条件的变量
  3. 使用break谨慎:过多的break语句可能使代码难以理解

9.while vs for 循环

  • while循环:当不确定循环次数时使用
  • for循环:当知道要遍历序列或明确循环次数时使用
# while循环 - 不确定次数
import random
target = random.randint(1, 5)
guess = 0
while guess != target:
    guess = int(input("猜数字:"))
else:
    print("猜对了")
# for循环 - 确定次数
for i in range(5):
    print(f"第 {i+1} 次循环")
img