Python程序设计基础 教案6 字典_第1页
Python程序设计基础 教案6 字典_第2页
Python程序设计基础 教案6 字典_第3页
Python程序设计基础 教案6 字典_第4页
Python程序设计基础 教案6 字典_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

课程单元教学设计课程名称:程序设计基础课程性质:☑必修课□选修课学时学分:3学分56学时开课学期:2023学年第一学期教师姓名:陈建勇教师职称:副教授授课班级:人工智能23-1和23-2所属专业(教研室):人工智能技术应用开课部门:信息技术学院温州科技职业学院教学督导处(诊改办)制二○二三年九月

《程序设计基础》课程单元教学设计本单元标题:字典序号6授课班级人工智能23-2上课时间13周11月20日第1-2节13周11月22日第3-4节上课地点实1-609实1-220人工智能23-113周11月21日第5-8节实1-412学情分析上次课,学生已经接触和实操了第2种复杂的数据类型:元组.通过教师讲解和演示,学生发现列表的很多方法都可以迁移到元组中来,对元组并没有做过多的教师演示,而是教师提问题,学生仿照列表的方法进行处理.这次课,学生将接触第3种复杂数据类型:字典.通过字典的学生,学生又会有哪些新的发现呢?教学目标能力(技能)目标知识目标情感与价值目标理解字典的作用和意义;熟练掌握字典的各种方法.掌握字典创建的语法结构.掌握语法的基本操作方法.1.通过归纳法,得出哪些方法是公有的,哪些是独有的,以此快速掌握不同数据类型的特点.重点难点及解决方法教学重点教学难点解决方法字典的元素增删改查操作.字典元素的遍历操作.1.结合实际案例,让学生体会字典结构的作用,通过代码编写,提高学生学习的兴趣.1.通过多媒体展示、动画演示及播放程序设计方面的视频.2.结合教师的讲解,来突破本次课程的重点和难点。教学资源及教学用具1.参考书:崔晓军,肖红宇,python程序设计基础,电子工业出版社,2023年1第1版。2.网络教学资源:传智播客网站:/3.教学用具:多媒体、笔记本(或台式机)电脑课后教学反思

教学过程设计步骤与时间主要任务教师活动学生活动设计意图与教学方法步骤一(2分钟)课堂组织考勤课堂准备严肃课堂纪律步骤二(8分钟)复习对学生汇报进行点评课前三分钟汇报提升学生的表达能力步骤三(30分钟)字典的基本操作讲解+实操演示边学边练课程思政;步骤四(20分钟)字典的遍历讲解+实操演示边学边练案例任务驱动步骤五(20分钟)利用字典处理词频统计讲解+实操演示边学边练案例任务驱动步骤六(10分钟)利用列表处理词频统计任务说明边学边练情境教学步骤七(30分钟)利用字典计算商品总额讲解+实操演示边学边练案例任务驱动步骤八(30分钟)利用列表计算商品总额讲解+实操演示边学边练案例任务驱动步骤九(10分钟)小结并作业布置总结;作业布置课堂小结;学生记录作业梳理知识点脉络;作业练习巩固授课详细内容[步骤一](时间:2min)1、课堂组织利用超星学习通平台,进行考勤结果通报,做好事假迟到同学的记录。开启KK录像机,进行课程录屏,作为课程教学资源,上传超新学习通上,供学生课后回看再学习。[步骤二](时间:8min)2、复习回顾学生活动:利用课前三分钟汇报,让学生讲解上次课元组的相关知识点。通过汇报,了解学生对元组相关知识点和相关技能的掌握情况.[步骤三](时间:30min)字典的基本操作教师活动:对字典做基本介绍.字典以键值对的方式存储数据,以两组分别为key和value的方式保存数据,key和value之间存在一对一的关系,通过指定的key总能找到唯一的value值字典用大括号“{}”标识,字典元素使用“key:value”的方式表示,多组元素之间用“,”分隔。字典的语法dict={key1:value1,key2:value2}dict={'Name':'Trumple','Age':7,'sex':'男'}教师提醒:对字典需要做如下提醒教师活动:类似列表,元组,等创建完字典后,需要对元素进行访问,新增,修改和删除操作了.【示例3.5】定义一个字典并访问其中“Name”键对应的值。#定义一个字典对象dict={'Name':'Trumple','Age':7,'sex':'男'}print("字典为:",dict)#访问字典中的值print("key为Name的值为:",dict['Name'])修改和新增元素修改字典,可以是修改已有键对应的值,还可以是增加新元素。示例3.5中,将“Age”键对应的值改为37,并添加一个新元素"favorites":"游泳",代码如下dict={'Name':'Trumple','Age':7,'sex':'男'}print("原字典为:",dict)#修改字典中的值dict['Age']=37#如果对应的键不存在,就添加该记录dict['favorites']='游泳'print("新字典为:",dict)删除元素关于字典的删除操作,主要分为以下3种:(1)使用del语句删除指定元素。(2)使用del语句删除整个字典。(3)使用clear()方法清空字典所有元素。【示例3.6】在示例3.5的基础上,首先删除键是'Name'的元素,然后清空字典,最后删除字典dt={'Name':'Trumple','Age':7,'sex':'男'}print("原字典为:",dt)#删除键是'Name'的元素deldt['Name']print("删除键是'Name'的元素后:",dt)#清空字典dt.clear()print("清空字典后:",dt)#删除字典deldtprint("删除字典后:",dt)学生探索环节:利用pop方式删除字典元素,结合菜鸟教程中的pop语法结构让学生自行尝试,并让学生上台演示.Python3字典pop()方法|菜鸟教程()教学重点:字典元素的增删改查操作是基本操作,需要学生认真掌握,可通过不断实践予以掌握.学生活动:根据教师的演示,让学生模仿并实操上述增删改查元素的操作.思政元素:通过归纳法,得出哪些方法是公有的,哪些是独有的,以此快速掌握不同数据类型的特点.[步骤四](时间:20min)字典的遍历教师活动:对字典元素的遍历是很重要的内容,比如打印个人工资条,打印个人成绩等实际场景中都会用到.字典的遍历主要借助于字典中的key值,常用的遍历方式是借助于for循环。例如,遍历示例3.5中的dict字典,代码如下:#定义一个字典对象dict={'Name':'Trumple','Age':7,'sex':'男'}#遍历元素forkeyindict:print(dict[key])教师活动:本教材中只讲了字典的一种遍历结构:for.但之前在list和tuple结构中,我们还学习了其他几种循环结构,能否用在字典中呢?教师先回答:可以的.然后让学生模仿列表遍历的写法,将如下enumerate,iter进行遍历尝试.#学生自我探索print("-------enumerate循环-----")

dict={'Name':'Trumple','Age':7,'sex':'男'}

forindex,(key,value)inenumerate(dict.items()):

print("{}".format(value))#学生自我探索print("-------iter循环-----")

dict={'Name':'Trumple','Age':7,'sex':'男'}

forkey,valueiniter(dict.items()):

print(f"{key}:{value}")小结:除了for循环,还学过while循环结构,可以布置给学生作为选做内容.但相对来讲难度会比较大一点,可以作为基础较好学生的课外拓展练习.#基础好的学生可以选做print("-------while循环-----")

dict={'Name':'Trumple','Age':7,'sex':'男'}

keys=list(dict.keys())

index=0

whileindex<len(keys):

key=keys[index]

value=dict[key]

print(f"{key}:{value}")

index+=1小结:对于这几种循环结构,可以只给学生讲解要点,但不做代码演示,让学生自己去模式和尝试,如果有学生成功的,可以请学生上台来演示和讲解,以此锻炼学生的表达能力.教学重点:字典元素遍历,教材上只讲了一种,但不代表我们不能进行扩展,学会使用这几种不同的循环结构,有利于学生加深对循环语句的认识.[步骤五](时间:20min)利用字典处理词频统计教师活动:刚才实操的字典方法都是最基本的,如何将其用到实际问题中,是一个有趣的事情.接下来,来实现一个实际案例:词频统计.利用字典来统计一段英文内容的单元出现的次数.text=input("请输入一段英文内容")

word_list=text.split()#基于空格作为分隔符

word_dict={}

forwordinword_list:

ifwordinword_dict:

word_dict[word]+=1

else:

word_dict[word]=1

print(word_dict)教师提问:发现输入中文就不行,如下text="中国人要热爱中国."原因何在呢?对于英文段落,人们很习惯加入空格作为单词分割,但中文没有该习惯,因此如何先对中文段落的字间加入一个空格作为分割,该如何处理呢,引入一个新知识点:正则表达式.importre#引入第三方库

defadd_space(text):

returnre.sub(r'([\u4e00-\u9fa5])',r'\1',text)

input_text=input(“我是中国人,我爱中国”)output_text=add_space(input_text)print(output_text)有了该中文分割处理方式,就可以对中文内容进行词频统计了,如下代码所示importre

defadd_space(text):

returnre.sub(r'([\u4e00-\u9fa5])',r'\1',text)

input_text=input("请输入一段中文内容")

output_text=add_space(input_text)word_list=output_text.split()#基于空格作为分隔符

word_dict={}

forwordinword_list:

ifwordinword_dict:

word_dict[word]+=1

else:

word_dict[word]=1

print(word_dict)[步骤六](时间:10min)利用列表处理词频统计教师活动:学了字典的词频统计,回顾之前的列表这节内容,是否也可以基于列表进行词频统计呢,同时有了该正则表达,就可以顺利处理中文段落了.print("---------list统计词频----------")

text="你好世界,欢迎你来到我的世界"

text=re.sub(r'([\u4e00-\u9fa5])',r'\1',text)

word_list=text.split()

static_list=[]

foriteminword_list:

ifiteminstatic_list:

item_index=static_list.index(item)+1

static_list[item_index]+=1

else:

static_list.append(item)

static_list.append(1)

print(static_list)教学难点:结合实际案例,让学生体会字典结构的作用,通过代码编写,提高学生学习的兴趣.[步骤七](时间:30min)利用字典计算商品总额教师活动:下面利用字典来处理商品总额.需求说明:输入商品名称,单价,数量,一旦输入商品名称为no,则跳出循环,显示商品总额结算.代码如下########商品总额的代码###############

shopping_list={}

total_amount=0

whileTrue:

item_name=input("请输入商品名称(输入'no'结束):")

ifitem_name=="no":

break

item_price=float(input("请输入商品单价:"))

item_quantity=int(input("请输入商品数量:"))

item_total=item_price*item_quantity

total_amount+=item_total

shopping_list[item_name]={"单价":item_price,"数量":item_quantity,"总价":item_total}

print("购物清单:")

foritem,infoinshopping_list.items():

print(f"{item}\t单价:{info['单价']}\t数量:{info['数量']}\t总价:{info['总价']}")

print(f"商品总额:{total_amount}")[步骤八](时间:30min)利用列表计算商品总额教师活动:作为知识点的延伸,能否对该问题,采用列表方式进行商品总额计算,需求说明同上.print("---------list计算商品总额----------")

shoppi

温馨提示

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

评论

0/150

提交评论