第15集:while循环基础

本集学习目标

  • 理解什么是循环
  • 掌握while循环的基本语法
  • 学会使用循环变量
  • 理解循环的执行流程
  • 掌握循环计数器的使用
  • 通过实际练习掌握while循环的使用

什么是循环?

循环是编程中最重要的控制结构之一,它可以让代码重复执行多次。就像我们日常生活中的一些重复性工作:

生活中的循环

  • 跑步:每跑一圈,循环一次
  • 吃饭:每一口食物,循环一次
  • 打字:每个字符,循环一次

在编程中,当我们需要重复执行某段代码时,就使用循环。

为什么需要循环?

不使用循环(重复代码):

print("第1次")
print("第2次")
print("第3次")
print("第4次")
print("第5次")
# ...需要写100次

使用循环(简洁代码):

count = 1
while count <= 5:
    print(f"第{count}次")
    count += 1

while循环的基本语法

while 条件:
    # 条件为True时,重复执行的代码块
    循环体1
    循环体2
    ...

语法要点

  1. while是Python关键字,必须小写
  2. 条件后必须有冒号 :
  3. 循环体必须缩进
  4. 条件为True时,执行循环体
  5. 条件为False时,退出循环

执行流程图

开始
  ↓
判断条件
  ↓
True  → 执行循环体 → 更新条件变量 → 回到判断条件
  ↓                                        ↓
False → 退出循环 → 继续执行后续代码 → 结束

基本示例

示例1:简单的while循环

count = 1

while count <= 5:
    print(f"这是第{count}次循环")
    count += 1  # 这一步很重要,否则会无限循环

print("循环结束")

输出

这是第1次循环
这是第2次循环
这是第3次循环
这是第4次循环
这是第5次循环
循环结束

执行过程

  1. count = 1,判断 1 &lt;= 5 → True → 执行循环体
  2. count 变为 2,判断 2 &lt;= 5 → True → 执行循环体
  3. count 变为 3,判断 3 &lt;= 5 → True → 执行循环体
  4. count 变为 4,判断 4 &lt;= 5 → True → 执行循环体
  5. count 变为 5,判断 5 &lt;= 5 → True → 执行循环体
  6. count 变为 6,判断 6 &lt;= 5 → False → 退出循环

示例2:计算1到100的和

total = 0
count = 1

while count <= 100:
    total += count  # 累加
    count += 1

print(f"1到100的和是:{total}")

输出

1到100的和是:5050

示例3:打印1到10的偶数

count = 1

while count <= 10:
    if count % 2 == 0:  # 判断是否为偶数
        print(count)
    count += 1

输出

2
4
6
8
10

循环计数器

什么是循环计数器?

循环计数器是一个变量,用于记录循环执行的次数。

示例4:使用循环计数器

# 计数器从0开始
count = 0

while count < 5:
    print(f"计数:{count}")
    count += 1  # 计数器递增

输出

计数:0
计数:1
计数:2
计数:3
计数:4

示例5:倒计时

count = 10

while count >= 0:
    print(count)
    count -= 1  # 计数器递减

print("发射!")

输出

10
9
8
7
6
5
4
3
2
1
0
发射!

无限循环

什么是无限循环?

当循环条件永远为True时,循环会无限执行,形成无限循环。

示例6:无限循环(错误示例)

# 错误:忘记更新循环变量
count = 1

while count <= 5:
    print(count)
    # 忘记 count += 1,导致无限循环

问题count 永远是1,条件永远为True,循环永不结束

示例7:正确的无限循环(有退出条件)

# 正确:使用break退出
while True:
    user_input = input("请输入'quit'退出:")
    if user_input == 'quit':
        break
    print(f"你输入了:{user_input}")

执行示例

请输入'quit'退出:hello
你输入了:hello
请输入'quit'退出:world
你输入了:world
请输入'quit'退出:quit

实际应用案例

案例1:猜数字游戏(简化版)

import random

target = random.randint(1, 100)  # 随机生成1-100的数字
guess = 0

print("我已经想好了一个1-100的数字,你来猜!")

while guess != target:
    guess = int(input("请输入你的猜测:"))

    if guess < target:
        print("太小了!")
    elif guess > target:
        print("太大了!")
    else:
        print("恭喜你猜对了!")

案例2:密码验证(限制次数)

correct_password = "123456"
attempts = 3

while attempts > 0:
    password = input("请输入密码:")

    if password == correct_password:
        print("密码正确,登录成功!")
        break  # 登录成功,退出循环
    else:
        attempts -= 1
        remaining = attempts
        if remaining > 0:
            print(f"密码错误!还有{remaining}次机会")
        else:
            print("密码错误!机会用完,账户锁定")

案例3:计算阶乘

n = 5
factorial = 1
count = 1

while count <= n:
    factorial *= count
    count += 1

print(f"{n}! = {factorial}")

输出

5! = 120

案例4:斐波那契数列

# 斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, ...
n = 10
a, b = 1, 1
count = 2

print("斐波那契数列前{0}项:".format(n))
print(a, b, end=' ')

while count < n:
    c = a + b
    print(c, end=' ')
    a, b = b, c
    count += 1

print()

输出

斐波那契数列前10项:
1 1 2 3 5 8 13 21 34 55

案例5:九九乘法表

row = 1

while row <= 9:
    col = 1
    while col <= row:
        print(f"{col}×{row}={col*row}", end='  ')
        col += 1
    print()  # 换行
    row += 1

输出

1×1=1
1×2=2  2×2=4
1×3=3  2×3=6  3×3=9
1×4=4  2×4=8  3×4=12  4×4=16
1×5=5  2×5=10  3×5=15  4×5=20  5×5=25
1×6=6  2×6=12  3×6=18  4×6=24  5×6=30  6×6=36
1×7=7  2×7=14  3×7=21  4×7=28  5×7=35  6×7=42  7×7=49
1×8=8  2×8=16  3×8=24  4×8=32  5×8=40  6×8=48  7×8=56  8×8=64
1×9=9  2×9=18  3×9=27  4×9=36  5×9=45  6×9=54  7×9=63  8×9=72  9×9=81

常见错误与注意事项

错误1:忘记更新循环变量

# 错误:忘记更新循环变量
count = 1

while count <= 5:
    print(count)
    # 忘记 count += 1,导致无限循环

正确

count = 1

while count <= 5:
    print(count)
    count += 1  # 更新循环变量

错误2:条件永远为False

# 错误:条件永远为False,循环一次都不执行
count = 6

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

print("这行会执行")

输出

这行会执行

错误3:无限循环(不小心)

# 错误:条件永远为True
while True:
    print("这是无限循环")
    # 忘记break或更新条件

本集小结

  1. while循环用于重复执行代码
  2. 循环条件为True时执行循环体
  3. 循环条件为False时退出循环
  4. 循环计数器用于记录循环次数
  5. 必须更新循环变量,否则会形成无限循环
  6. break语句可以提前退出循环
  7. while循环适用于不确定循环次数的情况

课后练习

练习1:打印1-10

使用while循环打印1到10。

# 你的代码在这里

练习2:计算1-100的偶数和

计算1到100的所有偶数之和。

# 你的代码在这里

练习3:倒计时

编写倒计时程序,从10倒数到1,最后输出"发射!"。

# 你的代码在这里

练习4:猜数字(限制次数)

编写猜数字游戏,限制最多猜5次。

import random
target = random.randint(1, 100)
# 你的代码在这里

练习5:计算平均值

输入5个数字,计算它们的平均值。

# 你的代码在这里

下集预告

下一集我们将学习第16集:for循环基础。for循环是另一种重要的循环结构,特别适合遍历序列(如列表、字符串等)。

敬请期待!

« 上一篇 嵌套条件语句 下一篇 » for循环基础