内容正文:
《程序设计基础——Python》(高等教育出版社)教案
课 题
任务2.2 计算碳减排指标——各类运算符(逻辑、成员、身份运算符与运算符优先级)
课 型
理论
课 时
2
授课班级
授课时间
授课教师
教材分析
本任务选自高等教育出版社《程序设计基础——Python》,是项目2中第二个任务的第二部分,承接上一课时的算术、关系、赋值与按位运算符。上一课时解决的是数值“怎么算”,本课时解决的是条件“怎么判”:逻辑运算符and、or、not负责把多个条件连起来,成员运算符in、not in负责判断元素在不在容器里,身份运算符is、is not负责判断两个变量是不是同一个对象,运算符优先级则决定一个混合表达式到底先算哪一步。任务仍以“计算碳减排指标”为情境,既要写出垃圾类别判断、减排是否达标的条件表达式,也要把混合表达式一步一步推算出来。后续的选择结构与循环结构都要用逻辑运算符写判断条件,条件写错则分支走错,因此本课时是把运算符知识从“算得准”推进到“判得对”的关键一步,也为后面写条件语句打好基础。
学情分析
授课对象已经能定义变量,能用算术与关系运算符写出表达式并查看结果。上一课时算过垃圾总重量、单类占比和碳减排量,可回收物2.5千克、厨余垃圾3.0千克、有害垃圾0.5千克、其他垃圾1.0千克以及碳减排系数2.0都还在变量里,本课可以接着用,情境是连续的。
学生的困难集中在两点。一是容易把平时的习惯带进代码:判断字符串内容是否相同时随手写is,把is当成“更严格的==”;写表达式时默认从左往右算,忽略乘除高于加减、关系高于逻辑这类既定次序。二是对短路运算缺少感知,写出的表达式里包含本就不会执行的代码却看不出问题;非布尔值参与逻辑运算时,也习惯按True/False去猜,忽略了返回的其实是操作数本身。因此本课宜多用同一组表达式的对比演示,让学生先纸笔推算、再运行核对,用运行结果验证自己的判断;优先级部分至少带着全班演算两三个混合表达式,每一步的依据都要说清楚,不能只给答案。
学习目标
知识目标:
能说出逻辑、成员、身份三类运算符的功能,复述is与==的区别,记住运算符优先级表的排列顺序。
技能目标:
能判断含多个运算符的表达式的运算顺序,会用成员、身份运算符编写条件判断,完成碳减排项目的逻辑判定。
情感目标:
在先括号、后运算的严谨推算中,养成按规则办事、逐步验证的计算习惯,树立绿色低碳的环保意识。
学习重难点
重点:
逻辑运算符and、or、not的返回值规律与短路运算;成员运算符in、not in的用法;身份运算符is、is not与相等运算符==的区别;运算符优先级表的排列顺序。
难点:
非布尔值参与逻辑运算时先隐式转换、再返回操作数本身,结果与按True/False猜测的不一致;is判断内存身份、==判断值相等,两个运算符容易混用;含多个运算符的混合表达式要按优先级逐层推算,不能从左往右依次算。
教学方法
案例分析、讲授法、任务驱动法、小组讨论法、上机实践法
课前准备
1.查找相应网站资料,准备碳减排指标条件判断案例,课堂演示使用。
2.制作逻辑运算符与短路运算、成员与身份运算符、运算符优先级三段教学微视频,编写课堂任务单及随堂练习。
3.课前调试条件判断与混合表达式演算的示例代码,检查机房PyCharm环境,确认Python解释器可正常运行。
4.学生课前预习教材本任务内容,复习上一课时的四类垃圾重量与碳减排系数变量,完成课前自学任务。
教学媒体
电子课件、教学微视频、PyCharm开发环境、机房广播教学系统
教学过程
教学环节
教师活动设计
学生活动设计
设计意图
活动一:
创设情境
生成问题
【课程导入】
1.接着校园碳减排统计项目往下讲:上一课时已经用表达式算出了垃圾总重量、单类垃圾占比和碳减排量。提问:统计碳减排数据时,程序不光要做加减乘除,还要做条件判断——“是否达到减排目标”“某类垃圾是不是可回收物”,这类判断在Python里靠什么完成?
2.由学生的回答指出:算术运算符解决的是“算得准”,要“判得对”得靠另外几类运算符。随后出示一个条件:要同时满足“类别在允许的四类之中”和“碳减排量大于0”,提问这两个条件该怎么写。引出课题:计算碳减排指标——各类运算符(逻辑、成员、身份运算符与运算符优先级)。
3.下发课堂任务单,逐条解读本节课的学习目标:①能说出逻辑、成员、身份三类运算符的功能,复述is与==的区别,记住运算符优先级的排列顺序;②能判断含多个运算符的表达式的运算顺序,会用成员、身份运算符编写条件判断;③在先括号、后运算的推算中养成按规则办事、逐步验证的习惯。最后点出本节课的重点和难点。
【新知识传授】
1.播放教学微视频:逻辑运算符与短路运算、成员与身份运算符实操演示、运算符优先级案例演算三段。
2.梳理本节课的三个知识模块:逻辑运算符与成员运算符;身份运算符与运算符优先级;碳减排指标条件判断任务实施。
【练一练】
提问:①逻辑运算符and在什么情况下结果才为True?②成员运算符in的作用是什么?③身份运算符is和相等判断==最核心的区别是什么?
1.接收课堂任务单,对照任务单了解本节课的学习目标。
2.回顾上一课时定义的四类垃圾重量和碳减排系数变量,思考这些数据怎样参与条件判断。
3.观看教学微视频,注意逻辑短路运算的判断过程、成员与身份运算符的写法、优先级演算的每一步。
4.回答问题,结合校园碳减排统计的案例说出自己对条件判断运算符的初步理解。
5.明确本节课要解决的三个问题,带着任务进入后续学习。
1.承接上一课时的碳减排项目往下讲,学生手里已经有数据,问题直接指向“怎么判断”,情境连续。
2.用“既要类别正确、又要碳减排量达标”这同一个条件制造疑问,比直接罗列运算符更容易让学生记住这几类运算符的用处。
3.通过任务单落实学习目标,学生事先知道要学什么、学到什么程度。
4.微视频把逻辑短路、is与==的区别、运算符优先级这些抽象内容演示出来,降低复合条件表达式的理解难度,为后续理论讲授和上机实操做好铺垫。
活动二:
调动思维
探究新知
【新知识传授】
1.模块一 逻辑运算符与成员运算符。
①逻辑运算符and、or、not:and全为True才返回True,or任一为True就返回True,not对布尔值取反,固定返回True或False,如not 0得True。重点讲短路运算:and左边为假,右边的表达式就不再执行;or左边为真,右边的表达式也不再执行。补充说明非布尔值参与逻辑运算时先隐式转成布尔值再运算,返回的却是具体的操作数——and返回第一个假值,or返回第一个真值;布尔值场合下“&”与and、“|”与or效果相同。结合“碳减排量大于0 and 类别在允许的四类之中”这个条件,说明短路为什么能省去不必要的判断。
②成员运算符in、not in:判断元素是否在字符串、列表、元组、集合、字典这类容器中,结果只有True和False。用s = 'hello python'演示'python' in s得True、'java' not in s得True,说明not in是in的反向判断。
【练一练】
1.单选题:下列表达式中结果为True的是( )。A. 3 > 2 and 2 > 5 B. not 0 C. 5 in [1, 2, 3] D. '' or 0
2.简答题:简述逻辑运算符and的短路运算现象。
1.认真听讲,在草稿纸上记录逻辑短路和成员运算符的要点,把and、or、not三个返回值规律单独列成一栏。
2.独立完成书面习题,做完与同桌交换核对答案,重点核对非布尔值参与逻辑运算时返回的结果。
3.对not 0为什么得True、5 in [1, 2, 3]为什么是False这类地方想不通,主动举手向教师请教。
4.整理课堂笔记,把逻辑运算符和成员运算符整理成一张对照表。
1.先讲清三个逻辑运算符的返回值规律,再讲短路运算,学生记住的是判断依据,而不是孤立的规则。
2.非布尔值的返回结果与平时的猜测相反,放在一起对比讲解,比分开讲更容易留下印象。
3.随堂习题与课件例题对应,当堂检测逻辑、成员运算符的掌握情况。
4.同桌互查能够暴露共性问题,便于教师调整后面的讲课节奏。
活动三:
调动思维
探究新知
【新知识传授】
1.模块二 身份运算符与运算符优先级。
①身份运算符is、is not:判断两个变量是不是引用同一个对象,也就是内存地址是否相同,is not是它的反向判断。与相等运算符==对比:==只看值是否相等,is只看内存地址,两者不能互相替换。用a = 10、b = a、c = 10演示,print(a is b)输出True、print(a is not c)输出False,再用id()把两个变量的地址显示出来对照。提醒学生:日常比较数值和字符串的内容用==,确认是不是同一个对象时才用is。
②运算符优先级:括号()优先级最高,其后依次是幂运算**、算术运算(*、/、%、//高于+、-)、移位运算、按位运算、关系运算符、成员运算符、身份运算符、逻辑运算(not高于and,and高于or),赋值运算符最低;同级从左到右。以3 + 2 * 2 ** 3得19为例板书演算:先算2 ** 3得8,再算2 * 8得16,最后3 + 16得19;换成带括号的写法再算一遍,让学生看清括号的作用。强调写复杂表达式时优先用小括号把成组的运算括起来,必要时分行书写。
2.模块三 碳减排指标条件判断任务实施。结合项目写条件判断:判断垃圾类别是否属于允许的四类,判断碳减排量是否达到目标。先用课件例2-3“江西红色旅游统计”演示括号的作用,四个景区游客数分别为1200万、1500万、900万、800万,days = 365,先算括号内四项之和再整除,得日均12万人次。随后回到碳减排场景,写出垃圾总重量与碳减排量的表达式,运行核对7.2千克、5.0千克两个结果,再练习混合优先级表达式的推算。
3.布置小组实操任务。
①小组分工手绘运算符优先级梳理草图,按从高到低依次列出括号、幂运算、算术运算、移位与按位、关系、成员、身份、逻辑、赋值各层,每层各标一个例子;结合碳减排项目整理一张“条件判断表达式”清单,写出垃圾类别判断、减排达标判断的表达式。
②上机实操:在PyCharm中写and、or、not,in、not in,is、is not三类表达式,观察返回结果;用0、''、[]这类非布尔值试and与or,对照“返回第一个假值、第一个真值”的规律;挑两三个混合表达式,先用纸笔按优先级推算,再运行核对答案是否一致;结合碳减排案例完成垃圾类别判断、减排达标判断的简单条件代码。
③小组小型辩论:写复杂表达式时,是靠默认的运算符优先级,还是优先用小括号明确运算顺序。
4.机房巡视各组,指导优先级草图的绘制、条件判断表达式的写法与PyCharm实操,解答逻辑短路、is与==、优先级推算方面的疑问,监督小组实操进度,鼓励小组之间交流演算和排错的经验。
【练一练】
小组交流作答:①is与==判断的内容有什么不同?②在复杂的混合表达式中,小括号起什么作用?
1.四人一组分工,完成运算符优先级草图绘制、条件判断表达式清单整理、PyCharm上机实操和辩论材料整理。
2.组内交流练一练的答案,统一发言思路。
3.上机操作:写出and、or、not,in、not in,is、is not表达式并观察返回结果;用非布尔值试逻辑运算,把返回的操作数记在练习本上;对混合表达式先按优先级推算结果,运行后再对照;结合碳减排案例完成垃圾类别判断、减排达标判断的代码,观察输出。
4.推选代表上台展示优先级草图和条件判断表达式清单,演示关键代码的运行结果,分享辩论结论,并记录其他小组的不同看法。
5.逻辑运算和优先级推算遇到卡点,先按规则重算一遍、自行排查,解决不了再向教师求助。
1.这一部分的规则多、容易混,把讲和练都交给小组自己动手,学生参与的主动性更高。
2.推演和排错都由学生自己走一遍,遇到问题先想办法再求助,逐步养成自己排查的习惯。
3.落实本课核心知识:逻辑运算符与短路运算、非布尔值的逻辑运算规则、成员运算符in与not in、身份运算符is与is not、is和==的区别、运算符优先级,以及在碳减排条件判断中的用法。
4.通过两种写法的小型辩论,让学生自己归纳出“复杂表达式优先用小括号,提升代码可读性”的写法。
5.把优先级画成草图、写成清单,再落到上机实操,画图、写代码和逻辑推演几种能力一起练。
6.在碳减排模拟项目中验证并巩固本课知识,形成用逻辑、成员、身份运算符写条件、按优先级推算混合表达式的实践能力。
活动四:
巩固练习
素质提升
【知识点总结】
1.梳理本节课的知识脉络:逻辑运算符and、or、not及短路运算;非布尔值的逻辑运算规则;成员运算符in、not in;身份运算符is、is not——is判断内存身份,==判断值相等;运算符优先级的排列顺序,括号最高;碳减排指标条件判断的几个表达式。
2.点评各组绘制的运算符优先级草图和上机实操结果,逐条指出高频易错点:把is与==当成一回事,判断内容是否相等时随手写is;忽略逻辑短路,表达式里包含本就不会执行的代码却看不出问题;写复杂表达式完全靠默认优先级,一个括号也不加;非布尔值参与逻辑运算时按True/False猜结果,忽略了返回的是操作数本身。
3.布置课后作业:制作本课思维导图,梳理逻辑、成员、身份运算符与运算符优先级的知识体系,并完成课件配套练习题;拓展任务,模拟校园碳减排统计,用逻辑、成员运算符编写2条条件判断代码,推演一组混合运算符表达式的运行结果。
【分组讨论】
讨论话题:结合碳减排条件判断的案例,说一说编写多运算符的复杂表达式时,优先用小括号明确运算顺序,对代码阅读和程序正确性各有什么好处?
组织各小组汇报,引导学生说明每个运算符的选择依据,并比较不加括号与用括号明确顺序两种写法在调试排错上的效率差别。
1.跟随教师复盘全部知识点,补充运算符优先级草图和课堂笔记,标记本节课的易错点。
2.听取小组成果点评,修正草图、代码和概念理解中的错误;小组之间交换课堂习题互相核对纠错。
3.围绕讨论话题分组研讨,整理小组的分析结论。
4.记录课后作业,安排完成顺序。
5.课后独立完成思维导图、配套练习和碳减排条件判断的拓展编程任务。
1.当堂复盘把三类运算符和优先级串成一条线,完成知识检测与巩固。
2.针对高频错误逐条纠正,扭转学生混淆is与==、编写复杂表达式不加括号的习惯。
3.借碳减排统计项目展开讨论,把运算符知识落到真实业务上,同时渗透绿色低碳的环保意识。
4.思维导图、优先级草图、条件判断表达式清单、PyCharm上机实操几项任务覆盖课件各教学板块,锻炼画图、语言表达和逻辑推演能力。
5.通过对比不加括号与用括号明确顺序两种写法在排错时的差别,让学生养成先括号后运算、逐步推演验证的编程习惯,为后续学习选择分支结构做准备。
课堂小结
作业布置
课堂小结
作业布置
1.绘制本课思维导图,梳理逻辑、成员、身份三类运算符的用法和运算符优先级的排列顺序。
2.完成课件配套练习题。
3.拓展任务:模拟校园碳减排统计,用逻辑运算符和成员运算符编写2条条件判断代码,写出一组混合运算符表达式并推演其运行结果。
板书设计
任务2.2 计算碳减排指标——各类运算符(逻辑、成员、身份运算符与运算符优先级)
一、逻辑运算符
and 逻辑与:全为True才返回True,非布尔值返回第一个假值
or 逻辑或:任一为True就返回True,非布尔值返回第一个真值
not 逻辑非:对布尔值取反,固定返回True/False,not 0 = True
短路运算:and左边为假、or左边为真,右边不再执行
二、成员运算符
in:元素在容器中返回True not in:in的反向判断
容器:字符串、列表、元组、集合、字典
例:s = 'hello python' 'python' in s = True 'java' not in s = True
三、身份运算符
is:判断是否为同一对象(内存地址相同) is not:反向判断
==:只判断值是否相等,与is不能互相替换
例:a = 10;b = a;c = 10 → a is b = True,a is not c = False
四、运算符优先级(由高到低)
括号() → 幂** → 算术(* / % // 高于 + -)→ 移位 → 按位 → 关系 → 成员 → 身份 → 逻辑(not > and > or)→ 赋值
同级从左到右;3 + 2 * 2 ** 3 = 3 + 2 * 8 = 3 + 16 = 19
五、碳减排指标
类别判断:类别 in ['可回收物', '厨余垃圾', '有害垃圾', '其他垃圾']
达标判断:碳减排量 > 0 and 类别 in 允许的四类
计算核对:运行后核对7.2千克、5.0千克两个结果
教学反思
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$