第四课:程序的分岔路 – 条件判断 if 语句

  • 时长: 90 分钟
  • 教学目标:
    • 理解为什么程序需要做“判断”或“选择”。
    • 学习比较大小和是否相等的符号(关系运算符)。
    • 认识 True (真) 和 False (假) 这两种特殊的值(布尔值)。
    • 学会使用 if 语句,让程序在条件满足时执行特定的代码。
    • 再次强调写代码时的“缩进”非常重要,它决定了哪些代码是一组的。

课程内容

1. 复习与引入 (10 分钟)

  • 复习: 快速回顾变量、数据类型、运算符和字符串操作。
  • 提出问题: 老师提问:“我们现在可以计算、可以处理文字。但是,如果我想让程序判断一个同学考试分数是不是及格(比如大于等于 60 分),如果是及格就表扬他,如果不及格就不说话,怎么办?”
  • 引出条件判断: 程序不能总是从头到尾一条直线地执行。有时候,程序需要根据某个条件来决定下一步走哪条路,是执行这段代码,还是跳过它。这就是条件判断,也叫分支结构。用红绿灯、考试及格/不及格等生活中的例子来比喻。

2. 比较大小和是否相等 – 关系运算符 (15 分钟)

  • 作用: 关系运算符用来比较两个东西(数字、字符串等)的大小或者是否相等。
  • 结果: 比较的结果只有两种可能:是对的(真)或不对的(假)。这两种结果叫做布尔值,用 True (真) 和 False (假) 表示。
  • 关系运算符:
    • >:大于
    • <:小于
    • >=:大于等于
    • <=:小于等于
    • ==等于(注意是两个等号,一个等号是赋值!)
    • !=:不等于
  • 演示: 使用这些运算符进行比较,并打印结果以及结果的类型 (bool)。
    a = 10
    b = 20
    
    print(a > b)   # False
    print(a < b)   # True
    print(a >= 10) # True
    print(b <= 15) # False
    print(a == b)  # False
    print(a != b)  # True
    
    print(type(a > b)) # <class 'bool'>
    
    # 字符串也可以比较,按照字典顺序
    print("apple" > "banana") # False
    print("cat" == "Cat")   # False (区分大小写)
    print("dog" != "cat")   # True
    
  • 动手实践: 学生尝试比较不同的数字、变量、字符串,预测结果,然后运行代码验证。

3. 如果…就… – if 语句 (20 分钟)

  • if 的作用: if 语句用来判断某个条件是否成立(是否为 True),如果条件成立,就执行它后面跟着的一段代码;如果条件不成立(为 False),就跳过这段代码。
  • 语法:
    if 条件表达式:
        # 如果条件表达式的结果是 True,就执行这里的代码
        # 注意:这里的代码需要缩进!
        print("条件成立!")
        print("这是 if 代码块里的另一行")
    # 这行代码没有缩进,它不属于 if 代码块,无论条件是否成立都会执行
    print("程序继续运行...")
    
  • 重点强调:
    • 条件表达式:放在 if 后面的,它的结果必须是 TrueFalse(通常是一个关系运算的结果)。
    • 冒号 :: if 行的末尾必须有一个冒号 :
    • 缩进: 跟在 if 行下面的,并且有相同缩进的代码,才属于 if 语句的“代码块”。缩进通常是 4 个空格。Python 就是靠缩进来区分代码块的。
  • 演示: 编写简单的 if 语句程序,演示条件为 True 时执行代码块,条件为 False 时跳过代码块。 特意演示错误的缩进,让学生知道会出错。
    score = 85
    
    if score >= 60:
        print("恭喜你!")
        print("考试及格了!") # 这两行都在 if 块里,因为它们缩进了
    
    print("程序结束。")
    
    # 改变分数,再看看
    score = 55
    if score >= 60:
        print("恭喜你!") # 这行不会被打印
        print("考试及格了!") # 这行也不会被打印
    
    print("程序结束。")
    
  • 动手实践: 学生修改代码中的分数,观察 if 语句块的执行情况。 尝试在 if 块里写多行代码。

4. 让程序根据你的输入做判断 (15 分钟)

  • 结合 input(): 我们可以获取用户的输入,然后用 if 语句根据用户的输入内容做判断。
  • 重要提醒:input() 获取的数据是字符串!如果要做数字比较,记得先用 int()float() 转换类型。
  • 演示:
    age_str = input("请输入你的年龄:")
    age = int(age_str) # 转换为整数
    
    if age >= 18:
        print("你已经成年了。")
        print("是一个大孩子了!")
    
    print("感谢使用!")
    
    # 另一个例子:判断输入的数字是否为正数
    num_str = input("请输入一个数字:")
    num = float(num_str) # 转换为小数类型
    
    if num > 0:
        print("你输入的是一个正数。")
    
  • 动手实践: 学生编写程序,询问用户一个数字,判断这个数字是否大于 100,如果大于就打印一句话。 编写程序,询问用户一个名字,如果名字是“爱丽丝”,就打印一句特别的欢迎语。

5. 课堂练习 (15 分钟)

让学生独立完成以下练习:

  • 练习 1: 编写一个程序,询问用户今天的温度(整数),如果温度高于 30 度,就打印“今天真热啊!”
  • 练习 2: 编写一个程序,询问用户最喜欢的颜色,如果用户输入的是“蓝色”,就打印“蓝色是天空的颜色,真美!”
  • 练习 3: 编写一个程序,询问用户一个数字,判断这个数字是否是偶数(提示:使用取余运算符 %== 0),如果是偶数,就打印“这是一个偶数”。
    # 在这里写你的代码
    num_str = input("请输入一个整数:")
    # TODO: 转换为整数
    # TODO: 判断是否是偶数 (能被2整除余数为0)
    # TODO: 如果是偶数,打印提示信息
    

6. 总结与提问 (10 分钟)

  • 回顾: 回顾本节课内容:条件判断的作用,关系运算符,布尔值 (True, False),if 语句的语法和执行流程,缩进的重要性,以及如何结合 input() 使用 if
  • 提问:
    • 7 == 7 的结果是 True 还是 False8 != 8 呢?
    • if 语句时,条件后面的冒号能少吗?
    • if 语句后面的代码块有什么特点(在格式上)?
    • 如果 if 后面的条件是 False,那么缩进的代码会执行吗?
  • 答疑: 回答学生的问题。

7. 布置课后作业 (5 分钟)

  • 作业 1: 编写一个程序,询问用户的年龄,如果年龄大于等于 18 岁,就打印“你已经成年了。”
  • 作业 2: 编写一个程序,询问用户一个数字,如果这个数字小于 0,就打印“这是一个负数。”
  • 作业 3: (选做) 编写一个程序,询问用户的名字,如果名字的第一个字母是“A”(不区分大小写),就打印“你的名字以 A 开头,真棒!”(提示:使用字符串索引 [].upper().lower())。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。