「Python教案」判断语句的使用
课程目标
1.知识目标
- 能使用if、elif、else分支语句设计程序。
- 能使用逻辑运算符and、or、not以及它们的组合及优先级设计程序。
- 能将实际问题中的条件关系转化逻辑判断语句。
2.能力目标
- 联系生活化案例,比如交通信号灯、成绩分级等,培养逻辑思维能力。
- 通过编写智能快递柜超时计费系统等项目,提高程序设计能力。
3.思政目标
- 渗透“逻辑严谨性”的工匠精神。
- 培养社会责任感。
学习内容
1.简单if条件结构
if 条件:
# 条件为真的时候执行的代码
else:
# 条件为假的时候执行的代码
if条件结构类似与交通信号灯控制逻辑。
2.多条件组合
在Python中,可以使用以下三种逻辑运算符组合多个条件进行判断。
①and(与)
语法:条件1 and 条件2,当条件1和条件2同时为真(True)时,整个表达式的值为真(True)。条件1和条件2只要有一个为假(False),整个表达式的值为假(False)。
②or(或)
语法:条件1 or 条件2,条件1和条件2中任意一个结果为真(True)时,整体表达式的结果为真(True)。当条件1和条件2同时为假(False)时,整个表达式的结果才为假(False)。
③not(非)
语法:not 条件,条件取反,即条件为假(False)时结果为真(True),条件为真(True)时结果为假(False)。
多条件组合好比,生产线质检条件判断,例如“尺寸合格且重量达标”
3.嵌套判断
if 条件1:
if 条件2:
# 条件1和条件2都为真时执行的代码
else:
# 条件1为真但条件2为假时执行的代码
else:
# 条件1为假时执行的代码
在条件结构中包含条件结构,注意,不要过度嵌套。
重点分析
重点内容 | 含义 | 示例 |
多条件组合与嵌套条件判断的设计 | 实际开发中70%的逻辑错误源于条件关系的错误,例如工业控制场景(如生产线质检)对条件判断准确性要求极高 | 绘制流程图辅:使用Visio绘制交通信号灯控制逻辑图 生活案例引入:设计“智能空调温度调节系统” 代码演示:演示银行系统身份验证代码片段 |
难点分析
难点内容 | 确立理由 | 突破方法 |
逻辑错误排查与代码可读性维护 | 初学者常将=与 ==搞混导致错误 过度嵌套会使代码难以维护 | 调试方法:使用print()函数逐层验证条件分支 代码规范:强制要求代码缩减 设计模式:引入“卫语句”概念重构嵌套判断,如果条件不满足直接返回。 |
教学活动设计
概念引入
例如:交通信号灯的模拟,红绿灯切换类似于条件判断。
light = input("请输入信号灯颜色(red/yellow/green):")
if light == 'red':print("停车")
elif light == 'yellow':print("准备")
else:print("通行")
运行结果
请输入信号灯颜色(red/yellow/green):yellow准备进程已结束,退出代码为 0
交通规则的严谨性映射出代码逻辑的严谨性。
代码演示
案例:垃圾分类助手
item = input("请输入物品名称:")
if '纸' in item or '塑料' in item:print("可回收物")
elif item in ['电池', '药品']:print("有害垃圾")
else:print("其他垃圾")
运行结果
请输入物品名称:电池有害垃圾进程已结束,退出代码为 0
常见错误
错误类型 | 示例代码 | 解决方法 |
比较运算符与赋值运算符混用 | if a = 5: | 使用==进行比较,使用=进行赋值。 |
优先级错误 | if a>5 and b<3 or c==0: | 添加括号明确优先级:if (a>5 and b<3) or c==0: |
缩进错误 | else: print("hello") | 严格遵循4空格缩进规则,改为: else: print("hello") |
课堂练习
练习:编写“BMI健康评估程序”,输入身高体重,输出体型建议(需包含异常值处理)
try:h = float(input("身高(m):"))w = float(input("体重(kg):"))bmi = w / (h ** 2)if bmi < 18.5:print("偏瘦")elif 18.5 <= bmi < 24:print("正常")else:print("超重")
except ValueError:print("输入错误,请输入数字!")
运行结果
身高(m):180体重(kg):80偏瘦进程已结束,退出代码为 0
课后作业
必做题:设计“校园一卡通消费限制系统”要求:单日消费>100元时需输入密码
daily_limit = 100
total = float(input("请输入今日消费金额:"))
if total > daily_limit:password = input("请输入密码:")if password == "123456": # 实际项目中需加密存储print("支付成功")else:print("密码错误")
else:print("支付成功")
运行结果
请输入今日消费金额:180请输入密码:123456支付成功进程已结束,退出代码为 0
选做题:实现“智能快递柜超时计费规则”(前2小时免费,之后每小时1元)
hours = float(input("请输入包裹存放时间(小时):"))
if hours <= 2:print("无需付费")
else:fee = (hours - 2) * 1print(f"需支付{fee}元")
运行结果
请输入包裹存放时间(小时):3需支付1.0元进程已结束,退出代码为 0
考核设计
1.过程性考核(40%)
- 课堂练习的完成程度(20%)
- 编写代码的规范性与添加注释的规范性(10%)
- 参与小组讨论和解决问题的能力(10%)
2.终结性考核(60%)
- 理论测试(20%):运算符优先级选择题
- 综合项目(40%):根据用户的会员等级和购物金额计算最终应支付的金额。
综合项目:编写一个Python程序,根据用户的会员等级和购物金额计算最终应支付的金额,规则如下:
- 会员等级分为:普通会员(1)、白银会员(2)、黄金会员(3)、钻石会员(4)
- 折扣规则:
- 普通会员:无折扣
- 白银会员:购物金额 ≥1000 元打9折,否则无折扣
- 黄金会员:购物金额 ≥2000 元打8折,≥1000 元打85折,否则无折扣
- 钻石会员:购物金额 ≥2000 元打7折,≥1000 元打75折,≥500 元打8折,否则无折扣
- 要求:
- 输入会员等级和购物金额
- 输出原始金额、折扣信息和最终支付金额
- 需要验证输入的会员等级是否有效(1-4)
- 需要验证购物金额是否为有效数字(≥0)