1、学习目标、重难点课前导入学习新知拓展延伸课堂小结学习目标1了解什么是字典类型数据;2掌握字典类型数据的常用操作命令和函数;3理解文件操作命令。重难点重点是学习字典类型数据的操作。难点是文件操作命令。导入学习导入学习编程就像搭积木一样,是件很有趣的事情,我们可以从生活入手,编一些程序来解决用手工处理很麻烦的事情。这一课我们将通过编程创建一个电话号码簿,并且能按照人名查询电话号码。一、创建电话号码簿一、创建电话号码簿一般来说,电话号码簿中的数据是成组出现的,例如:name1:phone1,name2:phone2,name3:phone3,.在Python编程中,像电话号码簿这样成组出现的数据,通
2、常用“字典”类型的数据来表示。字典类型的数据通常来存储信息,格式如下:name1:phone1,name2:phone2,name3:phone3新命令新命令格式:d=key1:value1,key2:value2,.功能:建立一个新的字典。其中键(key)和值(value)通过冒号连接,组成一个键值对(冒号前面的为键,冒号后面的为值),键值对之间通过逗号隔开,字典是键值对的集合。键值对在字典中没有顺序之分。字典中的键是唯一的,如果重复,最后的一个键值对会替换前面的,但值不需要唯一。字典中的值可以通过键来查询,就像通过身份证号码查人一样,例如dkey2就是value2。想一想:想一想:生活中还
3、有哪些信息可以用字典类型的数据来表示?请举出两个例子。例如:例如:学号:姓名 省:省会城市 科目:科代表假设通过下面的命令创建了某班的学号字典pb:pb=21:”wang”,22:”zhang”,23:”jiang”那么:pb22:键”22“对应的值,即”zhang”字典中所有键的集合:pb.keys(),即序列:21,22,23字典中所有值的集合:pb.values(),即序列:“wang”,”zhang”,”jiang”增加键值对:pb24=”yao”。这时pb就变成了21:”wang”,22:”zhang”,23:”jiang”,24:”yao”替换键值对:pb22=”zhang fei
4、”删除键值对:del pb22小博士小博士任务探究一任务探究一假设:假设:pb=21:”wang”,22:”zhang”,23:”jiang”pb=21:”wang”,22:”zhang”,23:”jiang”,对对pbpb进行如下操作:增加键值对、删进行如下操作:增加键值对、删除键值对、改写键的值、显示所有键除键值对、改写键的值、显示所有键的列表、显示所有值的列表。的列表、显示所有值的列表。探究学习一探究学习一【例题【例题13-113-1】编写程序,创建电话号码簿。】编写程序,创建电话号码簿。号码簿程序编写出来了,可是电话号码不能保存,怎么办?二、保存电话号码簿二、保存电话号码簿只有将电话号
5、码簿保存到文件中,我们输入的电话号码信息才只有将电话号码簿保存到文件中,我们输入的电话号码信息才不会丢失。不会丢失。新命令新命令格式:格式:file=openfile=open(“文件名文件名.txt”txt”,”打开模式打开模式”)功能:打开功能:打开”文件名文件名.txt”txt”。”打开模式打开模式“有下列几种:有下列几种:”r”r”:以读方式打开文件,只有读取文件信息。以读方式打开文件,只有读取文件信息。“r+”“r+”:以读写方式打开文件,可对文件进行读写操作。以读写方式打开文件,可对文件进行读写操作。“w”“w”:以写方式打开文件,可向文件写入信息。如果文件以写方式打开文件,可向文
6、件写入信息。如果文件存在,则清空该文件,再写入新内容。存在,则清空该文件,再写入新内容。“w+”“w+”:清空文件内容,以读写方式打开文件。清空文件内容,以读写方式打开文件。探究学习二探究学习二【例题【例题13-213-2】编写程序,创建电话号码簿,】编写程序,创建电话号码簿,并保存到磁盘。并保存到磁盘。以写的方式打开文件以写的方式打开文件“temp.txt”“temp.txt”(如果文件不存在,则新建一个如果文件不存在,则新建一个“temp.txttemp.txt”)将字典类型的数据将字典类型的数据pbpb转换成字符类型的数据,因为字典类型的数据不能直接写入文件中转换成字符类型的数据,因为字
7、典类型的数据不能直接写入文件中将字符串将字符串strpbstrpb写入到文件写入到文件“temp.txt”“temp.txt”中。中。关闭已经打开的文件关闭已经打开的文件“temp.txt”“temp.txt”。命令命令file=open(“temp.txt”,”w”)file=open(“temp.txt”,”w”)创建了一个叫创建了一个叫”file”file”的文件对象,利用的文件对象,利用文件对象的文件对象的“方法方法”(可以理解为函数可以理解为函数),可以对文件进行打开、读、写、,可以对文件进行打开、读、写、关闭等操作。例如:关闭等操作。例如:file=open(“temp.txt”,
8、”w”):file=open(“temp.txt”,”w”):创建一个叫创建一个叫“file”“file”的对象。的对象。file.close():file.close():关闭文件。关闭文件。file.write(“file.write(“字符串字符串”):”):将将“字符串字符串”写入文件。写入文件。file.seek(0):file.seek(0):将文件指针移将文件指针移到文件头。文件指针用于指定文件操作的位置。到文件头。文件指针用于指定文件操作的位置。file.truncate():file.truncate():从文件指针处开始,清空文件。从文件指针处开始,清空文件。file.re
9、adine():file.readine():读文件指针所指行的信息。读文件指针所指行的信息。小博士小博士任务探究二任务探究二建立存有三个人的电话号码建立存有三个人的电话号码簿,并保存到程序所在的目录下,簿,并保存到程序所在的目录下,然后用然后用Python IDIEPython IDIE打开,检查所打开,检查所存入的电话号码簿。存入的电话号码簿。【例题【例题13-213-2】虽然能保存电话号码】虽然能保存电话号码簿,但下次运行程序的时候,保存的电簿,但下次运行程序的时候,保存的电话号码又不见了,这是因为用话号码又不见了,这是因为用”ww”模式模式打开文件,会创建新的文件。因此我们打开文件,会
10、创建新的文件。因此我们用用“r+r+”模式打开文件,先将文件内容模式打开文件,先将文件内容读出来,然后与新增的电话号码一起,读出来,然后与新增的电话号码一起,重新写入文件。如何将电话号码追加到重新写入文件。如何将电话号码追加到已有文件?已有文件?爱发现探究学习三探究学习三向已有文件追加电话号码,【例题向已有文件追加电话号码,【例题13-313-3】编】编写程序,向电话号码簿文件追加信息。写程序,向电话号码簿文件追加信息。以可读写的方式打开文件以可读写的方式打开文件“temp.txttemp.txt”读取文件的一行。格式类似于:读取文件的一行。格式类似于:“wang”:21,”zhang”:22
11、,”jiang”:23”“wang”:21,”zhang”:22,”jiang”:23”将将pbpb的引号去掉,的引号去掉,pbpb就变成了字典类型数据就变成了字典类型数据将文件指针移到文件头将文件指针移到文件头清空文件清空文件任务探究三任务探究三运行两次运行两次ex133.pyex133.py,每次都输入,每次都输入一个人的电话号码信息,然后用一个人的电话号码信息,然后用Python IDLEPython IDLE打开打开“temp.txt”“temp.txt”文件,检文件,检查所存入的电话号码簿。查所存入的电话号码簿。运行程序运行程序ex133.pyex133.py的时候,如果文件的时候,
12、如果文件”temp”temp”不不存在,或者存在,或者”temp.txt”temp.txt”文件中的信息不能转换成字文件中的信息不能转换成字典类型的数据,程序就会出错。怎么样让程序能典类型的数据,程序就会出错。怎么样让程序能够应对这些错误呢?也就是说,程序能不能捕捉够应对这些错误呢?也就是说,程序能不能捕捉到错误信息,按照流程图运行?到错误信息,按照流程图运行?探究与发现探究与发现打开文件创建文件出错出错不出错不出错捕捉程序运行的错误,可以使用捕捉程序运行的错误,可以使用try-excepttry-except语句。语句。新命令新命令格式:格式:try:try:except:except:功能
13、:当执行功能:当执行 1出错时就执行出错时就执行 2先打开文件,若正常:向文件追加电话号码,若异常:创建新文件(ex134.py)探究学习四探究学习四编写程序,向电话号码簿文件追加信息。当编写程序,向电话号码簿文件追加信息。当打开文件出错,或者文件内容格式出错时,创建打开文件出错,或者文件内容格式出错时,创建新的电话号码簿文件。新的电话号码簿文件。trytry下面的语句块用于打下面的语句块用于打开、读取文件的内容,开、读取文件的内容,并将文件内容转换成字并将文件内容转换成字典类型的数据,然后将典类型的数据,然后将文件清空。如果在执行文件清空。如果在执行这段程序时出错就会执这段程序时出错就会执行
14、行exceptexcept下面的语句块。下面的语句块。exceptexcept下面的语句块是创建一个新的文件。下面的语句块是创建一个新的文件。只有当磁盘上不存在只有当磁盘上不存在“temp.txt”“temp.txt”文件,或者文件文件,或者文件内容不能转换成字典数据类型的时候才会执行内容不能转换成字典数据类型的时候才会执行该语句块。该语句块。三、查询电话号码三、查询电话号码探究学习五探究学习五现在来编写查询电话号码的程序。现在来编写查询电话号码的程序。【例题【例题13-513-5】从刚建立的电话号码簿中查询】从刚建立的电话号码簿中查询电话(按姓名):电话(按姓名):拓展延伸拓展延伸P82P8
15、2试一试:将创建和查询电话号码的程序合试一试:将创建和查询电话号码的程序合并成一个即能添加电话号码,又能查询电话号码并成一个即能添加电话号码,又能查询电话号码的程序。程序运行时出现如下界面,输入数字执的程序。程序运行时出现如下界面,输入数字执行相应的功能程序块:行相应的功能程序块:|-|-欢迎进入通讯录程序欢迎进入通讯录程序-|-|-1|-1、查询联系人资料、查询联系人资料-|-|-2|-2、添加新的联系人、添加新的联系人-|-|-3|-3、退出通讯录程序、退出通讯录程序-|-|课堂小结课堂小结字典类型的数据是键值对的集合,电话号码簿是人名和电话号码的集合,人名和电话号码就是键值对,其中人名是
16、键、电话号码是值。新世纪版信息技术八年级上册第十三课画正多角星教学设计新世纪版信息技术八年级上册第十三课画正多角星教学设计课题 电话号码簿单元第十三课学科信息技术年级八年级上册学习目标1了解什么是字典类型数据;2掌握字典类型数据的常用操作命令和函数;3理解文件操作命令。重点学习字典类型数据的操作难点难点是文件操作命令。教学过程教学环节教师活动学生活动设计意图一、课前导入编程就像搭积木一样,是件很有趣的事情,我们可以从生活入手,编一些程序来解决用手工处理很麻烦的事情。这一课我们将通过编程创建一个电话号码簿,并且能按照人名查询电话号码。产认真听讲迅速引入课题二、新知讲解与学习一、创建电话号码簿新命
17、令讲解格式:d=key1:value1,key2:value2,.功能:建立一个新的字典。1、提出问题:生活中还有哪些信息可以用字典类型的数据来表示?请举出两个例子。2、小博士3、任务探究一:P76 试一试4、演示并讲解探究学习一:【例题 13-1】编写程序,创建电话号码簿。认真听讲,学习新命令自主探究思考并回答问题认真学习小组协助完成任务认真学习如何创建电话号码簿通过学习掌握新命令培养学生学生自主探究学习解决问题的能力通过小组探究,培养学生相互协作的能力学会用程序编写出电话号码簿5、提出问题:号码簿程序编写出来了,可是电话号码不能保存,怎么办?二、保存电话号码簿1、新命令格式:file=op
18、en(“文件名.txt”,”打开模式”)功能:打开”文件名.txt”。2、演示并讲解探究学习二:【例题 13-2】编写程序,创建电话号码簿,并保存到磁盘。3、小博士4、任务探究二:P79 试一试5、爱发现,提出问题:如何将电话号码追加到已有文件?5、演示并讲解探究学习三:向已有文件追加电话号码,【例题 13-3】编写程序,向电话号码簿文件追加信息。6、任务探究三:P 试一试 807、探究与发现8、新命令功能:当执行出错时就执行try:except:9、演示并讲解探究学习四:编写程序,向电话号码簿文件追加信息。当打开文件出错,或者文件内容格式出错时,创建新的电话号码簿文件。三、查询电话号码1、演
19、示并讲解探究学习五:【例题 13-5】从刚建立的电话号码簿中查询电话(按姓名)握新命令的使用认真学习认真学习命令以及命令的格式学会怎么样让程序能够应对出现的错误学会用程序查询已经建立的电话号码三、拓展延伸P82 试一试:将创建和查询电话号码的程序合并成一个即能添加电话号码,又能查询电话号码的程序。程序运行时出现如下界面,输入数字执行相应的功能程序块小组协助探究完成作业通过小组探究,培养学生相互协作的能力,并提高学习积极性,巩固知识课堂小结字典类型的数据是键值对的集合,电话号码簿是人名和电话号码的集合,人名和电话号码就是键值对,其中人名是键、电话号码是值。本课的流程是由问题驱动的,当完成一个任务后,新的问题自然而然就产生了板书第 十 三 课 电 话 号 码簿