第15集:while循环基础
本集学习目标
- 理解什么是循环
- 掌握while循环的基本语法
- 学会使用循环变量
- 理解循环的执行流程
- 掌握循环计数器的使用
- 通过实际练习掌握while循环的使用
什么是循环?
循环是编程中最重要的控制结构之一,它可以让代码重复执行多次。就像我们日常生活中的一些重复性工作:
生活中的循环:
- 跑步:每跑一圈,循环一次
- 吃饭:每一口食物,循环一次
- 打字:每个字符,循环一次
在编程中,当我们需要重复执行某段代码时,就使用循环。
为什么需要循环?
不使用循环(重复代码):
print("第1次")
print("第2次")
print("第3次")
print("第4次")
print("第5次")
# ...需要写100次使用循环(简洁代码):
count = 1
while count <= 5:
print(f"第{count}次")
count += 1while循环的基本语法
while 条件:
# 条件为True时,重复执行的代码块
循环体1
循环体2
...语法要点:
while是Python关键字,必须小写条件后必须有冒号:- 循环体必须缩进
- 条件为True时,执行循环体
- 条件为False时,退出循环
执行流程图
开始
↓
判断条件
↓
True → 执行循环体 → 更新条件变量 → 回到判断条件
↓ ↓
False → 退出循环 → 继续执行后续代码 → 结束基本示例
示例1:简单的while循环
count = 1
while count <= 5:
print(f"这是第{count}次循环")
count += 1 # 这一步很重要,否则会无限循环
print("循环结束")输出:
这是第1次循环
这是第2次循环
这是第3次循环
这是第4次循环
这是第5次循环
循环结束执行过程:
count = 1,判断1 <= 5→ True → 执行循环体count变为 2,判断2 <= 5→ True → 执行循环体count变为 3,判断3 <= 5→ True → 执行循环体count变为 4,判断4 <= 5→ True → 执行循环体count变为 5,判断5 <= 5→ True → 执行循环体count变为 6,判断6 <= 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或更新条件本集小结
- while循环用于重复执行代码
- 循环条件为True时执行循环体
- 循环条件为False时退出循环
- 循环计数器用于记录循环次数
- 必须更新循环变量,否则会形成无限循环
- break语句可以提前退出循环
- 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循环是另一种重要的循环结构,特别适合遍历序列(如列表、字符串等)。
敬请期待!