Python 程序设计 - 10. while 循环
1. 引言
在 Python 中,除了 for 循环之外,while 循环也是一种常用的控制结构。与 for 循环通过遍历一个可迭代对象来执行任务不同,while 循环则是基于条件判断来执行代码。只要条件为 True,while 循环就会不断地执行循环体中的代码。理解 while 循环的工作方式对于编写高效的程序非常重要。
2. while 循环介绍
while 循环的基本语法如下:
while 条件:
# 执行的代码
- 条件:每次循环之前,都会判断条件表达式。如果条件为
True,就执行循环体内的代码;如果条件为False,则停止循环。 - 循环体:是每次条件为
True时执行的代码块。
3. while 循环语法与案例
3.1 基本语法:打印数字
我们首先来看看一个简单的 while 循环示例,它打印 1 到 5 的数字。
i = 1
while i <= 5:
print(i)
i += 1 # 递增 i
输出:
1
2
3
4
5
在这个例子中,i 从 1 开始,每次循环后都将其加 1。当 i 大于 5 时,循环结束。
这里,while True 是一个无限循环,通过 if 语句判断 i 是否大于 5,如果是,就使用 break 跳出循环。
3.3 使用 while 计算总和
通过 while 循环来计算 1 到 100 的和:
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
print("1 到 100 的和是:", sum)
输出:
1 到 100 的和是: 5050
在这个例子中,sum 会累加从 1 到 100 的所有数字,直到 i 大于 100 时停止循环。
3.4 使用 while 打印偶数
我们可以通过 while 循环来打印 1 到 20 中的偶数:
i = 2
while i <= 20:
print(i)
i += 2 # 步长为 2,确保打印偶数
输出:
2
4
6
8
10
12
14
16
18
20
3.5 计算阶乘
使用 while 循环计算一个数字的阶乘:
num = 5
factorial = 1
while num > 0:
factorial *= num
num -= 1
print("5 的阶乘是:", factorial)
输出:
5 的阶乘是: 120
在这个例子中,我们使用 while 循环计算了 5 的阶乘:5 * 4 * 3 * 2 * 1 = 120。
4. while 循环常见应用
4.1 while 循环用于输入验证
可以通过 while 循环来要求用户输入有效的数据,直到满足要求为止:
age = -1
while age <= 0: # 如果输入的是无效的年龄,继续要求输入
age = int(input("请输入您的年龄: "))
if age <= 0:
print("年龄必须是一个正数,请重新输入。")
print("您的年龄是:", age)
这个程序会持续询问用户直到输入一个合法的年龄。
4.2 while 循环模拟猜数字游戏
在猜数字游戏中,我们可以用 while 循环来反复要求用户输入一个数字,直到猜对为止。
import random
number_to_guess = random.randint(1, 10)
guess = 0
while guess != number_to_guess:
guess = int(input("猜一个 1 到 10 之间的数字: "))
if guess < number_to_guess:
print("太小了!再试一次。")
elif guess > number_to_guess:
print("太大了!再试一次。")
print("恭喜你,猜对了!")
5. 练习题
练习 1:打印 1 到 10 的数字
i = 1
while i <= 10:
print(i)
i += 1
输出:
1
2
3
4
5
6
7
8
9
10
练习 2:计算 1 到 50 的奇数和
odd_sum = 0
i = 1
while i <= 50:
if i % 2 != 0: # 只有奇数
odd_sum += i
i += 1
print("1 到 50 的奇数和是:", odd_sum)
输出:
1 到 50 的奇数和是: 625
练习 3:计算 1 到 100 的总和,使用 while 循环
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
print("1 到 100 的和是:", sum)
输出:
1 到 100 的和是: 5050
6. 总结
while 循环是 Python 中另一种强大的循环结构,它通过条件判断来决定是否继续执行循环体。while 循环可以处理许多需要根据条件动态控制执行的任务。掌握 while 循环的使用,可以帮助你更灵活地解决一些编程问题,例如处理不定次数的任务、输入验证和猜数字等。通过这些练习和示例,希望你能更加熟悉 while 循环的应用方式。
评论区