while循环

学习如何使用while循环在条件满足时重复执行代码块,实现更灵活的循环控制。

基本用法

while循环会在条件满足时重复执行代码块,直到条件变为假。

基本语法:

while 条件表达式:
    代码块

当条件表达式为真(True)时,执行缩进的代码块;然后再次检查条件,直到条件为假(False)时,退出循环。

示例:

# 打印1到5的数字
i = 1
while i <= 5:
    print(i)
    i += 1 # 不要忘记增加计数器,否则会陷入无限循环

运行上面的代码,输出结果为:
1
2
3
4
5

无限循环与break语句

如果while循环的条件始终为真,那么循环将无限执行下去,这称为无限循环。我们可以使用break语句来退出循环。

示例:使用break退出循环

# 无限循环,直到用户输入'q'退出
while True:
    user_input = input("请输入内容 (输入'q'退出): ")
    if user_input == 'q':
        break
    print(f"你输入的是: {user_input}")

运行上面的代码,程序会一直要求用户输入内容,直到用户输入'q'为止。

continue语句

continue语句用于跳过当前循环的剩余部分,直接开始下一次循环。

示例:

# 打印1到10之间的奇数
i = 0
while i < 10:
    i += 1
    if i % 2 == 0: # 如果是偶数,跳过
        continue
    print(i)

运行上面的代码,输出结果为:
1
3
5
7
9

嵌套while循环

在while循环内部可以再次使用while循环,这称为嵌套while循环。

示例:打印矩形

# 打印3行5列的星号矩形
row = 0
while row < 3:
    col = 0
    while col < 5:
        print("*", end="")
        col += 1
    print() # 换行
    row += 1

运行上面的代码,输出结果为:
*****
*****
*****

故事化案例:小明的存钱计划

小明想要存够1000元买一辆新自行车,他每个月可以存100元。让我们计算他需要多少个月才能存够钱。

场景:小明的存钱计划

  • 目标金额:1000元
  • 每月存款:100元
  • 初始存款:0元

代码实现:

# 小明的存钱计划
target = 1000 # 目标金额
monthly_saving = 100 # 每月存款
current_saving = 0 # 当前存款
months = 0 # 月数

while current_saving < target:
    current_saving += monthly_saving
    months += 1
    print(f"第{months}个月,存款金额: {current_saving}元")

print(f"小明需要{months}个月才能存够{target}元")

运行上面的代码,输出结果为:
第1个月,存款金额: 100元
第2个月,存款金额: 200元
第3个月,存款金额: 300元
第4个月,存款金额: 400元
第5个月,存款金额: 500元
第6个月,存款金额: 600元
第7个月,存款金额: 700元
第8个月,存款金额: 800元
第9个月,存款金额: 900元
第10个月,存款金额: 1000元
小明需要10个月才能存够1000元

练习题

1 猜数字游戏

编写一个猜数字游戏,程序随机生成一个1到100之间的数字,用户输入猜测的数字,程序提示"猜大了"或"猜小了",直到猜对为止。

2 计算阶乘

编写一个程序,计算n的阶乘(n!),其中n由用户输入。

3 打印斐波那契数列

编写一个程序,打印斐波那契数列的前n项,其中n由用户输入。