教案:while循环与循环控制

教案基本信息

课程名称:Python编程第八课 while循环与循环控制
授课对象:编程零基础初学者
课时安排:45分钟
教学形式:理论讲解 + 实践操作

一、 教学目标

知识与技能:

  1. 编程知识:理解while循环的语法和执行逻辑,掌握其与for循环的区别。掌握循环控制语句break(终止循环)和continue(跳过本次循环)的用法。能够使用while循环解决“满足特定条件时重复执行”的问题。
  2. 数学知识: 通过高斯求和等案例,巩固数列求和的知识。

过程与方法:

  1. 通过对比for循环和while循环,理解两种循环结构的适用场景。
  2. 经历“问题分析-算法设计-代码实现-调试优化”的完整编程过程。

情感态度与价值观:

  1. 体会不同编程结构解决同一问题的多样性,培养灵活解决问题的能力。
  2. 培养严谨的逻辑思维,理解循环控制对程序流程的重要性。

二、 教学重点与难点

教学重点: while循环的语法和执行流程;break和continue的作用。

教学难点: 准确设置while循环的条件,避免死循环;在合适的场景下使用break和continue。

三、 教学准备

教师: 安装Python环境的电脑、投影设备、教学课件。

学生: 电脑已安装Python环境,已掌握for循环和if语句。

四、 教学过程

(一) 复习导入:for循环的局限性(5分钟)

教师活动:

  1. 复习for循环:“上节课我们使用for i in range(1, 101)来计算1到100的和。for循环非常适合在循环次数明确的情况下使用。”
  2. 提出新问题:“但如果遇到循环次数不明确的情况呢?比如:”

“让用户输入密码,直到输入正确为止。”

“生成随机数,直到生成一个大于0.9的数。”

“计算一项投资需要多少年才能翻倍。”

引出主题:“这些问题的共同点是:只要条件满足,就继续循环。这时,while循环就派上用场了!”

设计意图: 从已知引出未知,通过对比强调while循环的独特应用场景。

(二) 新知探究:while循环(15分钟)

1. while循环的基本语法

语法(板书):

python

while 条件:

    # 循环体(条件为True时重复执行)

执行流程比喻: 就像“当…时候,就一直做…”。例如:“当锅里的水没开时,就一直烧火。”

示例1:打印1-5

python

count = 1  # 1. 初始化计数器

while count <= 5:  # 2. 循环条件

    print(count)

    count = count + 1  # 3. 改变条件变量(非常重要!)

print(“循环结束”)

关键强调:

循环三要素

初始化 (count = 1)

条件判断 (count <= 5)

更新条件变量 (count = count + 1) → 缺少这一步会导致死循环!

for循环对比:for循环自动处理计数器的初始化和更新,while循环需要手动管理。

2. 经典案例:高斯求和(1100的和)

while实现:

python

total = 0  # 累加和

i = 1      # 1开始

while i <= 100:  # 循环条件:i小于等于100

    total = total + i  # 累加

    i = i + 1          # i增加1

print(“1到100的和是:”, total)

引导学生思考: 这个实现与for循环版本相比,哪个更简洁?(for循环更简洁)但while循环更能体现“只要i还没超过100,就继续加”的逻辑。

(三) 难点突破:循环控制breakcontinue15分钟)

1. break语句:立刻终止整个循环

作用: 就像循环里的“紧急刹车”,一旦执行,立即跳出当前所在的最内层循环。

示例:密码验证

python

correct_password = “123456”

while True:  # 条件永远为True,看似是死循环

    user_input = input(“请输入密码: “)

    if user_input == correct_password:

        print(“密码正确,欢迎!”)

        break  # 密码正确,用break跳出循环

    else:

        print(“密码错误,请重新输入!”)

# break后会执行到这里

print(“程序继续…”)

讲解: while True:会创建一个无限循环,break是退出循环的唯一方式。

2. continue语句:跳过本次循环的剩余代码

作用: 就像循环里的“跳过”按钮,立刻开始下一轮循环。

示例:打印10以内的奇数

python

num = 0

while num < 10:

    num = num + 1

    if num % 2 == 0:  # 如果是偶数

        continue       # 跳过下面的print,直接开始下一轮

    print(num)         # 只有奇数才会执行到这里

# 输出:1 3 5 7 9

对比break break是“结束循环”,continue是“跳过本次,继续下次”。

(四) 综合应用:复杂条件循环(10分钟)

案例:猜数字游戏

需求: 程序随机生成一个1-100的数字,用户有5次机会猜测,每次提示“大了”或“小了”,猜对或次数用完则结束。

代码实现:

python

import random  # 导入随机数模块

secret = random.randint(1, 100)  # 生成1-100的随机整数

guesses_left = 5  # 剩余猜测次数

while guesses_left > 0:

    guess = int(input(f”请猜一个1-100的数字(还剩{guesses_left}次机会): “))

    if guess == secret:

        print(“恭喜你,猜对了!”)

        break  # 猜对了,提前结束循环

    elif guess > secret:

        print(“猜大了!”)

    else:

        print(“猜小了!”)

    guesses_left = guesses_left – 1  # 消耗一次机会

else:  # while循环的else子句:当循环正常结束(非break退出)时执行

    print(f”机会用完了,答案是{secret}。游戏结束。”)

讲解要点:

  1. while条件与机会次数关联。
  2. 使用break在猜对时提前退出。
  3. 介绍while-else结构:循环正常结束(条件变为False)时执行else块。

(五) 课堂练习与巩固(10分钟)

练习1:输入验证

任务:编写程序,要求用户必须输入一个正数,如果输入错误就提示重新输入,直到输入正确为止。

参考代码:

python

while True:

    num = float(input(“请输入一个正数: “))

    if num > 0:

        print(f”你输入的正数是:{num}”)

        break

    else:

        print(“输入错误,请重新输入!”)

练习2:投资翻倍计算

任务:假设年化收益率为5%,计算初始投资需要多少年才能翻倍。

参考代码:

python

money = 10000  # 初始本金

target = money * 2  # 目标金额

years = 0  # 年数

while money < target:

    money = money * 1.05  # 每年增长5%

    years = years + 1

    print(f”第{years}年,资产为:{money:.2f}元”)

print(f”需要{years}年资产可以翻倍。”)

(六) 课堂小结与作业(5分钟)

小结:

  1. while循环:用于循环次数不确定,但循环条件明确的场景。牢记循环三要素
  2. break:立即终止循环。
  3. continue:跳过本次循环,进入下一次。
  4. 选择原则:循环次数明确用for,循环条件明确用while。

作业:

  1. 基础题: 编写程序,计算所有100以内能被3整除但不能被5整除的数字之和。
  2. 挑战题: 编写一个简单的银行ATM登录模拟程序。用户有3次输入密码的机会,密码正确则显示“登录成功”,错误则提示剩余次数。3次都错误则显示“账户已锁定”。

五、 板书设计

主标题:while循环与循环控制

while循环语法:

python

while 条件:

    循环体

循环三要素:

  1. 初始化条件变量
  2. 设置循环条件
  3. 更新条件变量

循环控制:

break:终止循环

continue:跳过本次

范例:

python

# 密码验证

while True:

    if 条件:

        break

# 高斯求和

while i <= 100:

    total += i

    i += 1

您可能还喜欢...