高中一年级信息技术Python基础知识(五)-字典、集合与字符串综合应用教学设计_第1页
高中一年级信息技术Python基础知识(五)-字典、集合与字符串综合应用教学设计_第2页
高中一年级信息技术Python基础知识(五)-字典、集合与字符串综合应用教学设计_第3页
高中一年级信息技术Python基础知识(五)-字典、集合与字符串综合应用教学设计_第4页
高中一年级信息技术Python基础知识(五)-字典、集合与字符串综合应用教学设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高中一年级信息技术Python基础知识(五)——字典、集合与字符串综合应用教学设计一、教材与学情分析本课是Python基础知识系列的第五课时,面向高中一年级学生开设。前四课学生已经掌握了变量与数据类型、基本运算符、选择与循环结构、列表与元组的基本操作,能够编写三十行以内的结构化程序。本课的核心内容转向Python中两类重要的数据结构——字典与集合,并以字符串的进阶操作为串联线索,将前序知识整合到一个完整的综合任务中。课程标准要求学生在真实问题情境中理解数据组织方式与算法效率之间的关系,能够根据问题特征选择合适的容器类型,这正是本课的教学立意所在。学情方面,本班学生四十六人,上节课的课堂检测显示,多数学生能熟练使用列表存储和遍历数据,但在面对"查找某个学生的成绩"这类问题时,普遍采用遍历比较的方式,尚未建立"键值映射"的直觉。学生对字典的好奇心是有的,前几课已有学生从网络资料中提前接触过花括号语法,但一知半解,容易把字典与列表的索引方式混淆。教学难点因此定位于两点:其一,理解键的唯一性与无序哈希存储的思想;其二,能在具体任务中判断"该用列表、字典还是集合"。二、教学目标知识与技能目标:学生能够说出字典、集合的创建方式与核心特性,掌握字典的增删改查操作以及get方法、items方法的使用,理解集合去重与交并差运算的含义,能综合运用split、join、strip等字符串方法处理文本数据。过程与方法目标:学生经历"用旧知识解决—发现低效—引入新结构—对比优化"的探究过程,体会数据结构选择对程序效率与可读性的影响,初步形成依据问题特征选型容器的思维方式。情感态度与价值观目标:学生在"班级词频统计"这一真实任务中感受程序处理数据的威力,养成用数据说话的习惯,同时在小组协作中学会倾听与质疑。三、教学重点与难点教学重点是字典的键值对模型及其常用操作,字符串与字典配合完成统计任务的完整流程。教学难点是理解字典键的不可变性与唯一性约束,以及在复合任务中合理组合多种容器。四、教学准备机房环境为安装Python3.11以上版本的计算机,预装IDLE与一款代码编辑器;教师准备演示用文本文件"班级留言.txt",内容为全班学生的匿名留言共计三百余条;准备学案一份,含任务单、对比表格与分层练习;多媒体教室配备投屏设备。五、教学过程(一)情境导入:一个让人皱眉的程序上课铃响后,教师在屏幕上展示一段用旧知识编写的程序:用两个平行列表分别存储学生姓名和成绩,通过循环查找"张三"的分数。程序正确运行,输出92分。教师不急于表扬,而是抛出问题:如果班里不是五人,而是全省五十万考生,这段代码最坏情况下要比较多少次?学生很快回答五十万次。教师追问:有没有一种结构,让我们像查字典一样,翻开就直接找到?教室里安静下来,有学生小声说出"字典"二字。教师顺势板书课题:字典、集合与字符串综合应用。这一环节用时约五分钟。设计意图在于制造认知冲突,让学生切身感到已有工具的局限,从而对新知识产生真实的内在需求,而不是被告知"今天要学字典"。(二)新知探究一:字典的键值世界教师在建模语言中现场输入一行代码:scores等于花括号内"张三"冒号92,"李四"冒号88,"王五"冒号79。随后取scores["张三"],屏幕立刻返回92。教师引导学生观察:花括号、冒号、逗号分别承担什么角色?学生四人一组,在任务单上用自己的话描述字典的三要素,两分钟后请两组代表发言,教师归纳:每个元素是一个"键:值"对,键是查找的入口,值是存放的内容,对之间以逗号分隔,整体被花括号包裹。随后进入动手环节。学生完成三个递进任务:第一,建立自己小组四位成员的"姓名—身高"字典并逐个打印;第二,向字典中添加一位新成员,再修改其中一人的身高;第三,尝试使用索引scores[0],观察报错信息并解释原因。第三个任务是精心设计的"有意的错误",学生在TypeError面前会真切意识到:字典不是按位置而是按键访问的。教师此时补充说明字典内部基于哈希表组织,键必须是不可变类型,字符串、数字、元组可以做键,列表不可以,并用一次list作为键的报错演示来加固这一认识。接着教师提出防御性编程的初步观念:如果查询一个不存在的键会怎样?学生实验后发现程序抛出KeyError中断。教师引出get方法:scores.get("赵六")返回None,scores.get("赵六",0)返回默认值0。教师强调,处理外部数据时,永远要假设"键可能不存在",这是工程素养的起点。最后师生共同完成遍历的三种写法:直接遍历得到键,遍历scores.keys(),以及用items()同时拿到键与值的成对解包。教师让学生预测fork,vinscores.items()的输出顺序,借此说明Python3.7之后字典保留插入顺序这一事实,同时提醒:顺序是语言实现的承诺,检索逻辑上仍应把字典当作按键访问的映射,而非有序序列。此环节约十五分钟,讲练交替,每个知识点均由学生先操作再归纳,教师仅在关键处点拨。(三)新知探究二:集合——去重与关系运算的利器教师切换情境:两份选课名单,一份是选修美术的学生名单,一份是选修音乐的学生名单,名单均以列表形式给出,其中有人重复报名同一课程,也有人两门都报。教师布置三个问题:每种课程实际有多少人,同时修两门的有谁,只修美术不修音乐的有谁。学生先用列表加循环尝试,很快发现代码冗长且容易出错。教师此时引入集合:用set()把列表包一层,重复元素自动消失。屏幕上演示art与music两个集合后,教师引出三个运算符号:与号表示交集,竖线表示并集,减号表示差集。学生亲自动手敲出art&music、art|music、artmusic,三个问题的答案瞬间呈现,机房里有学生发出感叹声。教师理性地泼一点冷水:为什么集合能这么快?因为它和字典一样基于哈希,内部不保留插入顺序,也不支持索引。教师让学生尝试打印一个集合三次,观察元素次序,从而破除"集合就是列表"的误解,并强调集合元素必须可哈希、唯一。此环节约八分钟,落点在于让学生体会"数学中的集合思想在程序中的直接映射",实现学科知识与生活经验的勾连。(四)新知探究三:字符串方法的实战复习与提升教师说明:真实数据往往以文本形式存在,进入字典之前要经过加工。教师展示留言文件中的一行原始数据:"20240901|小雨|今天的编程课真有意思!",并提出拆解需求:分离出日期、昵称与内容。学生调用split方法,以竖线为分隔符切成三段,再用strip去除首尾空格。教师追问:如果内容本身含有竖线怎么办?引导学生发现split(sep,2)可以限定最多切两刀,保护了第三段的完整性。随后教师补充三个高频方法:replace用于敏感词替换,join用于把列表拼回字符串并强调其"分隔符在前、.join(列表)在后"的反直觉写法,count用于子串计数。为巩固join,教师设计微练习:把单词列表["Python","is","fun"]用空格拼成一句话,再用"".join做对照,让学生在对比中形成肌肉记忆。此环节约七分钟,定位为复习性强化,方法讲解服务于下一环节的综合任务,不孤立罗列语法。(五)综合任务:班级留言词频统计这是本课的主干活动,任务真实、规模适中、路径开放。教师下发任务单:读取"班级留言.txt",统计每个词语出现的次数,输出出现次数最多的前五个词及其次数。教师带领全班做算法分解,把大问题拆成四个小步骤,并板书流程:第一,逐行读取文件内容;第二,对每行做清洗与切分,得到词语列表;第三,用字典累计每个词的出现次数;第四,对统计结果排序并取前五。第三步是本课的知识落点。教师给出两种写法的对比:一种是ifwordincounts做存在性判断后分别处理,另一种是counts[word]等于counts.get(word,0)加一的紧凑写法。教师要求学生两种都写一遍,并在组内讨论哪一种更优雅、为什么。有学生提出前者更易读,后者更简洁,教师肯定两种观点,指出可读性与简洁性的权衡是程序员的日常功课,没有标准答案,只有场景适配。第四步的排序采用sorted函数配合items与lambda表达式。考虑到lambda是本课首次正式出现,教师采用"先给后拆"的策略:先给出完整语句sorted(counts.items(),key等于lambdax冒号x[1],reverse等于True),再逐段解读——items把字典变成键值对视图,key参数指定按值排序,reverse控制降序,切片[:5]取出前五名。学生跟着敲一遍后独立完成变式练习:改为输出次数最少且非停用词的五个词。任务以四人小组协作完成,组内角色轮换:一人负责文件读取,一人负责清洗切分,一人负责字典统计,一人负责排序输出,最后共同联调。教师巡视,重点关注两类典型错误:一是键不存在导致的KeyError,源于学生忘记用get或in做保护;二是把字典当列表排序后直接打印,发现结果是元组列表而非字典,教师借此引导学生阅读类型信息,理解sorted返回的是列表这一事实。任务收尾时,各组将统计结果汇总到黑板。高频词第一名不出所料是"老师",引发全班笑声。教师抓住时机进行价值引导:一段几十行的代码,就能从三百多条留言中读出大家的关注点,数据处理不是玄学,是你们已经掌握的工具;但工具越强,越要守住边界——留言是匿名收集的,如果我们试图反查是谁说了什么,就越过了伦理的线。学生郑重点头。此环节约十二分钟兼作成果展示,是本课思维密度最高的部分。(六)对比归纳:三种容器怎么选教师组织"容器选型大会"。屏幕上呈现一张三列表格:列表、字典、集合,横向对比有序性、是否允许重复、访问方式、典型场景。学生合上书,凭理解口头填表,教师随机点名补齐。随后给出四个情境,让学生抢答选型:保存全班按学号排列的成绩用列表;按姓名快速查询成绩用字典;统计班里出现过哪些不同的姓氏用集合;记录一天的气温时刻变化用列表或字典均可,视查询需求而定。教师强调决策口诀:按键查找用字典,去重关系用集合,顺序结构用列表。此环节约五分钟,目标是把零散知识结构化,形成可迁移的判断框架。(七)课堂小结与分层作业教师邀请三名学生用一句话各总结一个收获,教师补充完整知识脉络:今天我们认识了以键访问的字典、以唯一性立足的集合,并把字符串方法作为桥梁,完成了一次从原始文本到统计结果的完整旅程;更重要的是,我们学会了一种提问方式——面对数据,先问"它该怎么组织",再问"代码该怎么写"。作业分三层布置。基础层:完成学案中字典与集合的十道判断与填空,并改写课堂上的平行列表查询为有字典版本。提高层:统计自己一篇语文作文中各汉字的出现次数,输出前十名并观察"的地得"是否居前。拓展层:阅读Python官方文档中collections模块的Counter类,用三行代码重做课堂词频任务,下节课分享使用体会。分层设计保证每个学生都有踮踮脚够得着的目标。六、板书设计主板书中间写课题,左侧自上而下为字典三要素:花括号包裹、键值成对、按键访问,附get与items两个方法名;右侧为集合三运算符号及其含义;下方横向列出列表、字典、集合对比口诀;右下角留出综合任务的四步流程图。整块板书随教学进程逐步生成,课终时即为本课的结构化知识地图。七、教学预设与应对针对学生可能将字典与列表混用的问题,预设方案是在任务三中刻意安排错误体验并配足讨论时间,错一次胜过讲三遍。针对lambda接受度参差不齐的情况,预设替代方案:先用普通函数定义加key参数完成排序,再把函数压缩为lambda,两条路径殊途同归。针对小组中"一人包打天下"的风险,预设角色轮换制与随机抽人讲解机制,确保人人动手。八、教学评价设计课堂评价采用过程性证据:任务单完成度、代码运行截图、小组汇报中的概念使用准确性三个维度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论