版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AI生成AI生成第3章条件语句共4个课时
[理论课]L4布尔表达式与if-else教学课题布尔类型深入理解;关系(比较)运算符;逻辑运算符(and、or、not);if-else二分支条件语句;任务驱动案例(求绝对值、动物园门票、判断奇偶)教学对象师范专业本科生(零基础)教学时数2学时(90分钟)对应教材第3章§3.1-3.2条件语句(布尔类型、关系运算符、逻辑运算符、if-else)教学目标•深入理解布尔类型True/False的本质及其在条件判断中的核心作用•掌握六种关系(比较)运算符:==、!=、>、<、>=、<=,理解"=="与"="的区别•掌握三种逻辑运算符:and(与)、or(或)、not(非),理解运算规则和短路求值•掌握if-else二分支条件语句的语法结构,理解代码缩进的意义•能够运用if-else解决实际问题:求绝对值、门票价格判断、奇偶判断•理解条件表达式(三目运算符)的简洁写法教学重点与难点重点•关系运算符的正确使用,特别是"=="与"="的区别•逻辑运算符and/or/not的运算规则•if-else语句的语法结构(冒号、缩进)•任务驱动的编程思维:将问题转化为条件判断难点•逻辑运算符的真值表理解和记忆•复杂布尔表达式的构建与分析•代码缩进的严格要求(IndentationError)•从"自然语言条件"到"Python代码条件"的转化教学过程
温故导入:程序的"判断"能力(约8分钟)
回顾前面的程序都是"按顺序一条一条执行"的,缺乏"判断"能力。提出问题:如果程序能根据条件做不同的事情,会怎样?举例:自动售货机根据投币金额决定是否出货、APP根据成绩显示"及格"或"不及格"。引出"条件判断"概念——让程序具备"思考"和"决策"能力。
布尔类型与关系运算符(约20分钟)
(1)布尔回顾与深入:快速回顾bool类型的True和False。说明条件判断的结果始终是布尔值。
(2)关系运算符:逐一讲解六种关系运算符。重点强调"=="(判断是否相等)与"="(赋值)的区别——这是初学者最常犯的错误!通过对比示例强化记忆。
(3)关系运算的应用:演示判断成绩是否及格、判断温度是否适宜、判断两个数的大小关系等。强调关系运算的结果是bool值。
(4)常见错误:演示ifa=5的SyntaxError,对比正确的ifa==5。
逻辑运算符(约15分钟)
(1)and(与):两个条件都为True时结果为True。生活类比:"既要...又要..."。
(2)or(或):至少一个条件为True时结果为True。生活类比:"要么...要么..."。
(3)not(非):取反。生活类比:"不是..."。
(4)真值表:用表格清晰展示and、or、not的真值表。通过练习题让学生熟悉运算规则。
(5)复合条件:演示如何用and/or组合多个关系运算,如"年龄在18到60之间"写成age>=18andage<=60。
if-else二分支语句(约20分钟)
(1)语法结构:讲解if-else的完整语法,重点强调冒号(:)和代码缩进。用流程图直观展示执行逻辑:条件为True走if分支,为False走else分支。
(2)缩进规则:Python用缩进表示代码块的层次关系,同一代码块内的语句必须缩进相同(通常4个空格)。演示IndentationError的产生。
(3)案例1——求绝对值:输入一个数,如果是负数则取反,否则不变。这是if-else最直观的应用。
(4)案例2——动物园门票:身高1.2米以下免费,1.2米及以上需购票。练习将文字描述的条件转化为Python表达式。
案例实践:判断奇偶(约17分钟)
(1)算法分析:偶数能被2整除(n%2==0),奇数不能(n%2!=0)。引导学生回忆上节课的取余运算。
(2)代码实现:编写完整的判断奇偶程序,输入一个整数,输出"X是偶数"或"X是奇数"。
(3)拓展思考:如何判断一个数能否被3整除?能否同时被3和5整除?引导学生举一反三,用逻辑运算符构建复杂条件。
课堂总结与作业布置(约10分钟)
总结:关系运算符得到布尔值,逻辑运算符组合布尔值,if-else根据布尔值决定执行路径。强调编程思维的核心:将"问题"转化为"条件判断"。预告下节课将学习if-elif-else——当有更多分支选择时怎么办。
代码示例#案例1:求绝对值
num=int(input("请输入一个整数:"))
ifnum<0:
num=-num
else:
pass#正数不变
print(f"绝对值为:{num}")
#案例2:动物园门票
height=float(input("请输入身高(米):"))
ifheight<1.2:
print("免费入园!")
else:
print("请购买门票,票价20元。")
#案例3:判断奇偶
num=int(input("请输入一个整数:"))
ifnum%2==0:
print(f"{num}是偶数")
else:
print(f"{num}是奇数")
#逻辑运算符复合条件
score=int(input("请输入成绩:"))
ifscore>=0andscore<=100:
print("成绩有效")
else:
print("成绩无效,请输入0-100之间的数")课堂练习1.先判断以下表达式的结果(True/False),再在IDLE中验证:5>3and2<1、TrueorFalse、not(3>5)、10!=10。2.编写程序:输入一个年份,判断是否为闰年(规则:能被4整除但不能被100整除,或能被400整除)。提示:本周只实现基本的if-else,先处理一种情况。3.编写程序:输入考试分数,判断是否及格(60分及以上为及格),输出"恭喜,你及格了!"或"很遗憾,你需要补考。"。课后作业1.编写"身高体重判断"程序:输入身高和体重,判断BMI指数是否在正常范围(18.5-24.9),输出相应提示。2.编写"密码验证"程序:设定一个正确密码(如"python123"),输入密码后判断是否正确,输出"登录成功"或"密码错误"。3.思考题:如果要判断成绩属于"优秀(>=90)"、"良好(80-89)"、"及格(60-79)"、"不及格(<60)"四个等级,用if-else怎么实现?会发现很冗长——这就是下节课if-elif-else要解决的问题。教学反思
教学提示:if-else是编程学习的第一个"分支结构",标志着程序从"顺序执行"到"条件执行"的飞跃。代码缩进是Python的特色也是初学者的痛点,务必多次演示IndentationError,并强调使用4个空格而非Tab。"=="与"="的混淆是最常见错误,建议在课堂上设置一个"纠错环节",让学生找出代码中的bug。动物园门票、判断奇偶等案例贴近生活,能有效降低抽象概念的认知门槛。
──────────────────────────────────────────────────[理论课]L5if-elif-else多分支教学课题if-elif-else多分支条件语句;多条件判断的编程思维;任务驱动案例(门票进阶、数字比大小、空气质量等级、石头剪刀布)教学对象师范专业本科生(零基础)教学时数2学时(90分钟)对应教材第3章§3.3条件语句(if-elif-else多分支)教学目标•掌握if-elif-else多分支语句的语法结构,理解elif的"否则如果"语义•理解多分支条件的执行逻辑:从上到下依次判断,一旦命中即跳出•能够将现实世界的多分类问题转化为if-elif-else结构•通过门票进阶案例,理解嵌套if与多分支if的选择策略•通过数字比大小案例,掌握多条件组合的编程方法•通过石头剪刀布案例,初步体验随机数(random模块)与条件判断的结合教学重点与难点重点•if-elif-else的语法结构和执行流程•多条件分类问题的编程实现•elif分支的顺序对结果的影响•综合案例的算法分析与代码实现难点•elif分支的顺序问题(条件有重叠时先写的先生效)•嵌套if与多分支if的选择与权衡•石头剪刀布中多条件组合的完整覆盖•复杂逻辑条件的准确表达教学过程
温故导入:if-else的局限性(约8分钟)
回顾上节课的成绩判断作业——用if-else判断四个等级会发现代码嵌套层次深、可读性差。提出需求:有没有更优雅的多分支方案?引出if-elif-else结构。通过对比展示:同样的成绩分级,if-elif-else比嵌套if-else更清晰。
if-elif-else语法详解(约15分钟)
(1)语法结构:讲解if-elif-else的完整语法。强调:elif可以有多个(根据需要),else最多一个且必须放在最后。
(2)执行流程:用流程图展示——从if开始,逐个检查elif条件,一旦某个条件为True就执行对应代码块,然后跳出整个结构。如果所有条件都不满足,执行else(若有的话)。
(3)关键注意事项:条件判断是从上到下的"短路"过程——一旦匹配就不会继续检查后续条件。因此条件顺序很重要!演示错误示例:如果先写>=60再写>=90,则>=90永远不会被执行到。
(4)成绩分级标准案例:直接用成绩分级作为第一个完整示例,让学生看到if-elif-else的优雅。
案例1:门票进阶(约15分钟)
(1)需求升级:上节课是"免费/付费"两档,现在升级为:身高<1.2米免费、1.2-1.5米半票(10元)、>1.5米全票(20元)。
(2)算法分析:引导思考条件的表达——注意边界值(1.2和1.5归属哪个区间)的处理。
(3)代码实现:演示两种写法——用elif多分支vs用嵌套if,对比代码清晰度,说明优先使用elif多分支。
(4)拓展:加入年龄条件(老年人半票),展示更复杂的多条件组合。
案例2:数字比大小(约12分钟)
输入两个数字,判断它们的大小关系并输出"相等"、"大于"或"小于"。分析:需要判断三种情况(a>b、a==b、a<b),自然适合if-elif-else结构。注意条件的互斥性和完整性。编写完整代码并演示。
案例3:空气质量等级(约15分钟)
(1)背景介绍:AQI指数划分为6个等级(优、良、轻度污染、中度污染、重度污染、严重污染)。这是一个典型的多分支分类问题。
(2)条件设计:引导学生确定每个等级的AQI区间。注意:从高到低或从低到高排列都可以,但顺序不能随意打乱。
(3)代码实现:输入AQI值,输出对应等级和颜色(优-绿色、良-黄色等)。展示完整的if-elif-else代码。
(4)学科融合:说明这个案例与地理、环境科学的联系,体现编程的跨学科应用。
案例4:石头剪刀布(约15分钟)
(1)游戏规则分析:石头赢剪刀、剪刀赢布、布赢石头。共3种输入x3种出招=9种组合,其中3种平局、3种玩家赢、3种电脑赢。
(2)引入random模块:简要介绍importrandom和random.randint(),让电脑能"随机出招"。
(3)条件设计:讨论如何用if-elif-else覆盖所有情况。两种策略:分别列出玩家赢的3种情况(用or连接)vs逐一列出每种出招的胜负。
(4)代码实现:编写完整的人机猜拳游戏。这是学生完成的第一个具有"游戏性"的程序,激发成就感。
课堂总结与作业布置(约10分钟)
总结:if-elif-else是处理多分类问题的利器;注意条件顺序和互斥性;从问题分析到代码实现的四步法。预告下节课进入循环语句——让程序能够重复执行。
代码示例#成绩分级(标准if-elif-else)
score=int(input("请输入成绩:"))
ifscore>=90:
print("优秀")
elifscore>=80:
print("良好")
elifscore>=60:
print("及格")
else:
print("不及格")
#空气质量等级判断
aqi=int(input("请输入AQI指数:"))
ifaqi<=50:
print("优—空气质量令人满意")
elifaqi<=100:
print("良—空气质量可接受")
elifaqi<=150:
print("轻度污染—敏感人群注意")
elifaqi<=200:
print("中度污染—减少户外活动")
elifaqi<=300:
print("重度污染—避免户外活动")
else:
print("严重污染—紧急状态")
#石头剪刀布游戏
importrandom
choices=["石头","剪刀","布"]
computer=random.choice(choices)
player=input("请出招(石头/剪刀/布):")
print(f"电脑出了:{computer}")
ifplayer==computer:
print("平局!")
elif(player=="石头"andcomputer=="剪刀")or\
(player=="剪刀"andcomputer=="布")or\
(player=="布"andcomputer=="石头"):
print("你赢了!")
else:
print("你输了!")课堂练习1.修改成绩分级程序,加入5个等级:优秀(>=90)、良好(80-89)、中等(70-79)、及格(60-69)、不及格(<60),注意elif条件的顺序。2.编写"季节判断"程序:输入月份(1-12),输出对应季节(3-5月春季、6-8月夏季、9-11月秋季、12/1/2月冬季)。3.编写"出租车计费"程序:3公里以内起步价13元;超过3公里部分每公里2.3元。输入距离,输出费用。课后作业1.完善石头剪刀布游戏:加入循环让玩家可以多次游戏,输入"退出"时结束(提示:用while循环,下周会详细学)。2.编写"快递运费计算"程序:重量<=1kg,运费10元;1-5kg,每kg8元;>5kg,每kg6元。输入重量,输出运费。3.编写"个人所得税简易计算"程序:月收入<=5000免税;5000-8000部分10%;>8000部分15%。输入月收入,输出应缴税额。教学反思
教学提示:本节课是条件语句的深化。条件顺序问题是最容易出bug的地方,建议通过"故意写错顺序看效果"的方式加深学生印象。石头剪刀布案例综合了random模块、字符串比较和逻辑运算,有一定复杂度,建议先分析清楚所有9种情况再编写代码。空气质量案例涉及真实数据,可以展示当天当地的AQI数据增加课堂趣味性。提醒学生:if-elif-else的else是可选的——有时不需要"兜底"分支。
──────────────────────────────────────────────────[实践课]P4条件判断程序设计实践课题关系运算符与逻辑运算符、if-elif-else条件分支结构、程序的二元/多元判断设计教学对象师范专业本科生(零基础)教学时数2学时(90分钟)实践环境计算机机房,预装Python3.x实践目标•掌握六种关系运算符(==、!=、>、<、>=、<=)的用法与返回值•掌握三种逻辑运算符(and、or、not)的用法与短路求值特性•熟练使用if-else二分支结构编写判断程序•理解条件的组合:使用and/or连接多个条件•能设计并实现包含条件判断的实际应用程序实践内容与步骤
关系运算符与逻辑运算符实验(约15分钟)
(1)在交互模式中验证以下表达式:
>>>3==3#True
>>>3!=4#True
>>>5>3and2<1#False(两个条件都需满足)
>>>5>3or2<1#True(只需一个满足)
>>>notTrue#False
>>>"abc"=="ABC"#False(区分大小写)
>>>10>=10#True
(2)重点理解:关系运算和逻辑运算的结果都是bool类型(True或False)。
(3)讨论:0and5的结果是什么?3or0呢?体会Python的短路求值机制。
if-else基础:年龄判断(约15分钟)
编写脚本age_check.py:
#年龄判断程序
age=int(input("请输入年龄:"))
ifage>=18:
print("您已成年,可以独立购票。")
else:
print("您未成年,需要监护人陪同。")
#判断是否为退休年龄(男60,女55)
gender=input("请输入性别(男/女):")
if(gender=="男"andage>=60)or(gender=="女"andage>=55):
print("您已达到退休年龄。")
else:
print("您尚未达到退休年龄。")
(1)分别用不同的年龄和性别组合测试程序。
(2)讨论:组合条件中使用括号是否必要?不加括号结果如何?
复合条件判断:成绩等级(约15分钟)
编写脚本grade.py,将百分制成绩转换为等级:
#成绩等级转换
score=int(input("请输入百分制成绩(0-100):"))
ifscore>=90:
grade="优秀"
elifscore>=80:
grade="良好"
elifscore>=70:
grade="中等"
elifscore>=60:
grade="及格"
else:
grade="不及格"
print(f"成绩{score}分,等级:{grade}")
(1)运行程序,分别输入100、89、75、63、55等分数测试。
(2)思考:为什么elif部分只需要写score>=80而不需要写80<=score<90?
(3)教师强调:if-elif是互斥的分支,一旦某个条件为True,后续分支不再判断。
条件嵌套:登录验证模拟(约15分钟)
#简易登录验证
username=input("请输入用户名:")
password=input("请输入密码:")
ifusername=="admin":
ifpassword=="123456":
print("登录成功!欢迎回来。")
else:
print("密码错误,请重试。")
else:
print("用户名不存在。")
(1)测试:正确用户名+正确密码、正确用户名+错误密码、错误用户名。
(2)讨论:能否将嵌套if改写为使用and的单一if?哪种方式更清晰?
条件表达式的灵活使用(约10分钟)
(1)体验Python的条件表达式(三元运算符):
>>>age=20
>>>result="成年"ifage>=18else"未成年"
>>>print(result)
(2)体验链式比较(Python特有语法):
>>>60<=75<=100#等价于60<=75and75<=100
(3)教师小结:灵活运用条件表达式可以让代码更简洁。
综合任务实战与答疑(约20分钟)
(1)独立完成实践任务书"闰年判断器"。
(2)教师巡视,重点关注:条件书写的正确性、缩进问题、逻辑完整性。
(3)对代表性错误进行集中讲评(如漏写冒号、缩进不一致、条件顺序错误)。
实践任务书
任务:闰年判断器
编写一个程序,用户输入一个年份,程序判断该年是否为闰年并输出结果。
闰年规则:
能被4整除但不能被100整除的年份是闰年
能被400整除的年份也是闰年
其他情况不是闰年
要求:
使用if-elif-else结构实现判断
正确使用%(取余)和and/or逻辑运算符
输出格式:"XXXX年是闰年"或"XXXX年不是闰年"
至少测试5个年份:2000、1900、2024、2023、2100
参考代码#闰年判断器
year=int(input("请输入年份:"))
#闰年判断条件
if(year%4==0andyear%100!=0)or(year%400==0):
print(f"{year}年是闰年")
else:
print(f"{year}年不是闰年")评价标准评价维度优秀(90-100)良好(75-89)合格(60-74)运算符使用关系/逻辑运算符组合正确,条件表达式简洁能正确使用关系和逻辑运算符能使用基本的关系运算符条件结构if-elif-else结构完整,分支无遗漏无冗余能使用if-else完成基本分支判断能编写简单的if-else结构闰年逻辑闰年条件正确且简洁,测试用例覆盖全面闰年判断逻辑正确在指导下完成闰年判断代码规范缩进规范,有注释,无语法错误代码基本规范代码能运行但存在格式问题拓展挑战
编写一个"简易计算器":输入两个数和运算符(+、-、*、/),输出运算结果。要求使用if-elif-else判断运算符类型,并处理除数为零的情况。思考:如果用户输入了不支持的运算符(如%),程序应如何响应?
──────────────────────────────────────────────────[实践课]P5多分支程序综合实践实践课题if-elif-else多分支结构综合应用、match-case语句(Python3.10+)简介、石头剪刀布游戏开发教学对象师范专业本科生(零基础)教学时数2学时(90分钟)实践环境计算机机房,预装Python3.x实践目标•熟练运用if-elif-else多分支结构解决复杂判断问题•理解多分支结构的执行逻辑:条件从上到下逐一判断,首次匹配即执行•掌握importrandom模块的使用,能生成随机数•综合运用条件判断和随机数实现互动小游戏•培养程序设计的系统思维:先画流程图,再写代码实践内容与步骤
多分支结构复习与流程图绘制(约10分钟)
(1)教师带领学生在纸上绘制成绩等级转换程序的流程图。
(2)讨论:多分支结构中,条件的书写顺序为什么重要?如果把score>=60放在最前面会怎样?
(3)教师强调:多分支条件应从严格到宽松排列,确保每个值只匹配一个分支。
random模块初体验(约15分钟)
(1)在交互模式中尝试:
>>>importrandom
>>>random.randint(1,10)#生成1到10之间的随机整数
>>>random.randint(1,10)#再运行一次,结果不同
>>>random.choice(["石头","剪刀","布"])#随机选择列表中的一个元素
(2)多次运行观察结果的变化。
(3)教师讲解import语句的含义和random模块的常用函数。
(4)编写一个简单的"猜数字"小程序:
importrandom
target=random.randint(1,100)
guess=int(input("猜一个1-100的数字:"))
ifguess==target:
print("恭喜!你猜对了!")
elifguess<target:
print(f"太小了!答案是{target}")
else:
print(f"太大了!答案是{target}")
石头剪刀布游戏—设计与编码(约30分钟)
(1)先在纸上梳理游戏逻辑:
用户输入:石头/剪刀/布
电脑随机出:石头/剪刀/布
判断胜负的规则:石头赢剪刀、剪刀赢布、布赢石头
(2)编写完整游戏程序rps_game.py:
importrandom
print("=====石头剪刀布游戏=====")
print("请选择:0-石头1-剪刀2-布")
#玩家出拳
player=int(input("你的选择(0/1/2):"))
#电脑出拳
computer=random.randint(0,2)
#将数字转换为文字
choices=["石头","剪刀","布"]
print(f"你出了:{choices[player]}")
print(f"电脑出了:{choices[computer]}")
#判断胜负
ifplayer==computer:
print("平局!")
elif(player==0andcomputer==1)or\
(player==1andcomputer==2)or\
(player==2andcomputer==0):
print("你赢了!")
else:
print("你输了!")
(3)多次运行程序测试各种情况(平局、赢、输)。
(4)思考:能否用数学方法简化胜负判断?(提示:(player-computer)%3的结果)
多分支优化:简化胜负判断(约10分钟)
(1)教师介绍更简洁的判断方法:
#更简洁的胜负判断
result=(player-computer)%3
ifresult==0:
print("平局!")
elifresult==1:
print("你赢了!")
else:
print("你输了!")
(2)验证:用所有9种组合验证此方法是否正确。
(3)讨论:哪种写法更清晰?为什么?
match-case语句体验(Python3.10+,约10分钟)
(1)教师介绍Python3.10新增的match-case语法:
#使用match-case处理星期几
day=int(input("请输入星期几(1-7):"))
matchday:
case1:print("星期一")
case2:print("星期二")
case3:print("星期三")
case4:print("星期四")
case5:print("星期五")
case6:print("星期六")
case7:print("星期日")
case_:print("输入有误!")
(2)对比if-elif-else写法,讨论match-case的优势。
(3)注意:match-case要求Python3.10+,机房版本不足时仅作了解。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026厦门智能家居产业链供需动态投资风险评估发展前景服务文档
- 2026中国肠道菌群检测技术标准化与临床价值证明报告
- 2026中国智能停车管理系统行业产品供需研究及投资环境规划
- 2026中国智慧农业传感器设备市场渗透率与投资回报战略研究报告
- 2026叶黄素酯行业消费者画像与精准营销策略制定
- 2026生物活性肽临床应用进展及市场化路径研究
- B超室三基考试题目及答案
- 2026中国物流行业信用体系建设与失信惩戒机制
- 2026中国铁路信号系统行业市场现状供需分析及投资评估规划分析研究报告
- 2026圣卢西亚旅游业人才引进政策配套实施效果调研
- 2026 年精神科护理质控安全管理实践课件
- 2026中国新材料产业发展现状及技术突破趋势调研报告
- 第四代住宅建安成本精细化管控手册
- 2026年新疆维吾尔自治区法检系统书记员招聘考试参考试题及答案详解
- CMA“一单一库”新规深度解读
- 全球与中国高超音速风洞行业监测调研及发展态势展望研究报告
- 四川省南充市2025-2026学年八年级下学期期末考试数学试题
- 2025-2026学年河南新乡市高新区人教版五年级下册期末考试数学试题 附解析
- 风力发电场(电力行业标准)调试规程
- 全过程造价控制咨询服务方案投标文件(技术方案)
- 2026年博物馆志愿者培训考试模拟题
评论
0/150
提交评论