Python程序设计教程(工作手册式) 教案 王瑶 情景二 控制程序的结构_第1页
Python程序设计教程(工作手册式) 教案 王瑶 情景二 控制程序的结构_第2页
Python程序设计教程(工作手册式) 教案 王瑶 情景二 控制程序的结构_第3页
Python程序设计教程(工作手册式) 教案 王瑶 情景二 控制程序的结构_第4页
Python程序设计教程(工作手册式) 教案 王瑶 情景二 控制程序的结构_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

Python程序设计工作手册式教材教案专业名称:课程名称:Python程序设计任课班级:教师姓名:所属院系:职称:课时:64使用教材:

情景二控制程序的结构教学课题用户信息的保存序号1课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:掌握列表、元组、字典的创建、访问和操作方法,并能够根据实际情况保存用户信息。知识目标:了解常见的数据类型。素质目标:接受新知识、自主学习的能力。教学重点IDLE的使用教学难点Python程序的调试运行教学过程设计备注一、技术准备整形:整型就是我们平常所见的整数,它是不带小数点的,可以是正整数或负整数。浮点型:平时所用的带有小数的数。浮点型两种表现形式:带小数和科学计数。布尔型:布尔型表示事物的两种状态:真或假(True和False),没有第三种。分别对应整型数值:1和0。Python中任何空值都视为假,包括:Flase、None、0、[]、()、{}。复数型:由实数部分和虚数部分构成,虚数部分必须有小写的j或大写的J组成,并且实部和虚部都是浮点数。二、教学内容1、列表的创建、访问和操作方法列表(list)是Python的一种内建结构数据类型。把所有元素放在一对“[中括号]”内,以“,”进行分隔,同一个列表中的元素可以是不同的类型。列表是一种可变序列类型,可以进行增加、修改、删除元素等操作。(1)列表的创建>>>x=[1,2,3,4]>>>type(x)<class'list'>>>>y=[1,'a','python',9.9]>>>type(y)<class'list'>(2)列表的访问使用下标索引来访问列表中的值,从左往右以0开始依次增加,也可以从右往左以-1开始依次减小,如下图所示。(3)列表的常用操作方法序号方法分类功能描述1列表.append(object)增加在列表的尾部追加元素2列表.insert(index,object)在列表的某个位置插入一个元素3列表1.extend(列表2)在列表2扩充到列表1后4列表.remove(value)删除删除列表中指定的第一个元素5列表.pop(index)删除指定索引的元素,省略则指列表尾部6列表.clear()清空列表中的所有元素7列表[index]=object修改修改列表指定索引的元素8列表.index(value)查询返回某元素在列表中的位置,未找到则报错9列表.count(value)统计返回列表中某元素出现的次数10列表.sort(reverse=False)排序将列表中的元素默认按升序排序11列表.reverse()将列表中元素的顺序颠倒2、元组的创建、访问和操作方法(1)元组的创建元组是Python的一种内建结构数据类型。把所有元素放在一对“()”内,以“,”进行分隔,同一个元组中的元素可以是不同的类型。元组属于不可变序列,一旦创建,不可以修改、删除元素操作。首先声明一个空列表,可以使用li=[],表示一个空的列表;同理我们声明一个空元组,也可以使用tu=(),表示一个空的元组。再声明一个元组x,元组x包含四个整数:1,2,3,4,我们可以这样写:x=(1,2,3,4)回车,我们输出x的内容看一下结果。和列表一样,元组中的元素也可以是不同的类型的。最后再声明一个元组y,让y中包含不同的元素类型,操作代码如下。>>>li=[]>>>type(li)<class'list'>>>>tu=()>>>type(tu)<class'tuple'>>>>x=(1,2,3,4)>>>type(x)<class'tuple'>>>>y=(1,'a','python',9.9)>>>type(y)<class'tuple'>(2)访问元组中的值同列表一样,使用下标索引来访元组中的值,从左往右以0开始依次增加,也可以从右往左以-1开始依次减小。(3)元组的操作方法元组只有两个操作方式,分别是index和count。序号方法功能描述1tuple.index(value,[start[,stop]])返回某元素在元组中的位置2tuple.count(value)返回元组中某元素出现的次数3、字典的创建、访问和操作方法(1)字典的创建字典是Python的一种内建结构数据类型。每个元素都是:“键:值”对形式存在。用“{}”将所有元素括起来,各元素之间用“,”进行分隔。字典与列表和元组主要的不是同:字典是无序的,其元素的访问通过“键”实现,而不是通过元素的位置,并且要求字典中”键”不能重复。>>>d1={}>>>type(d1)<class'dict'>>>>d2={'python':1,'c':2,'java':3}>>>type(d2)<class'dict'>(2)访问字典中的值在列表的学习中,掌握了列表是通过下标索引进行访问,那字典的访问形式和列表一下吗?我们使用之前声明的字典d3,尝试访问第一个元素,在集成环境中输入d3[0]回车,返回错误信息,说明字典不支持下标索引的方式来访问。访问字典中的值是通过“键”来访问的,并且键是不变的。(3)字典的操作方法序号方法功能描述1dict.clear()清空字典2dict.copy()复制字典3dict.get(k,[default])获得k(键)对应的值,不存在不报错4dict.items()获得由键和值组成元组做为元素的列表5dict.keys()获得键的迭代器6dict.pop(k[,d])删除k(键)对应的”键:值”对7dict.update(adict)从另一个字典更新字典元素的值,如不存在,则添加此元素8dict.values()获得值的迭代器9dict.fromkeys(iter,value)以列表或元组中给定的键建立字典,默认值为value4、用户信息的保存三、总结通过本次任务的学习和实践,使我们熟悉了Python常用数据类型和内建结构数据类型,并且能够熟练地掌握列表、元组、字典的创建、访问和常用操作方法的实践操作。要保存多个用户的不同个人信息,可以首先建立一个空的列表备用,再逐一将不同用户的详细信息收集起来以键值对的方式保存到字典当中,最后使用列表append方法将字典追加到列表中保存即可。当然,上述方法是暂时的,待同学们学习了文件或数据库的操作以后,建议将重要信息保存到文件或数据库中。作业布置编写程序完成用户信息的保存教学反思同学们要强化个人信息自我保护意识,在生活、学习中养成保护个人信息的习惯。比如在向他人提供身份证等重要证件的复印件时,最好显著标识此复印件的用途;一些带有个人敏感信息的电子数据,如证件照片等,建议用完即删或者采用加密方式进行存储;快递单据涂抹掉关键信息后再丢弃等。情景二控制程序的结构主题流程控制序号2课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:能够根据实际需求熟练使用分支和循环语句完成程序编写。知识目标:理解顺序结构程序设计、代码的缩进的层次结构和、四种分支语句和循环语句。素质目标:接受新知识、自主学习的能力。教学重点分支和循环语句教学难点分支和循环语句的嵌套教学过程设计备注一、复习上一节上课内容并引出本节上课内容在编写程序过程中,如果需要根据用户的输入,灵活的调整哪些语句执行,哪些语句不执行又该怎么办呢?此时分支语句就非常重要了;然而有些问题仅仅通过分支条件语句还不能解决;有时为解决一个问题常常需要重复执行一个或多个操作,这该怎么办呢?这时就需要使用循环语句了。二、教学内容1、分支结构程序设计(1)单分支语句if表达式:语句块当表达式的值为True或者其它等价值时(非空非零),表示条件满足,则语句块将被执行,否则该语句块不被执行。表达式后用英文的冒号(:)结束,回车换行Python会自动缩进四个空格。接下来我们看一下实例,从键盘输入成绩,如果成绩大于等于60分则显示及格。score=float(input("请输入成绩:"))ifscore>=60:print("及格")单分支语句,只有一个if,当条件满足时,只能得到一个结果;如果想根据输入成绩的不同,返回不同的结果,我们就要使用双分支语句了。(2)双分支语句if表达式:语句块Aelse:语句块B当表达式的值为True或者其它等价值时(非空非零),执行语句块A,否则执行语句块B。也就是说:双分支语句执行时,只会选择一个分支执行。拓展单分支语句的功能,如果输入成绩大于等于60分则显示及格,否则显示不及格。score=float(input("请输入成绩:"))ifscore>=60:print("及格")else:print("不及格")如果有两个以上的条件,我们就要使用多分支语句了。(3)多分支语句语句格式if表达式A: 语句块Aelif表达式B: 语句块Belif表达式C: 语句块C ……else:语句块N语句执行说明首先计算表达式A,如果其值为True或者非空非零,则执行语句块A;否则计算表达式B,如果其值为True或者非空非零,则执行语句块B;否则计算表达式C,如果其值为True或者或者非空非零,则执行语句块C;以此类推,如果所有表达式计算的结果都为False(空值/0),则执行else后的语句块N。使用多分支语句将不同分数段分别对应五个不同的等级。如果输入成绩是90分及以上为优秀,80-89分为良好,70-79为中,60-69及格,60分以下为不及格。拓展单分支语句的功能,如果输入成绩大于等于60分则显示及格,否则显示不及格。score=float(input("请输入成绩:"))ifscore>=90:print("优秀")elifscore>=80:print("良好")elifscore>=70:print("中")elifscore>=60:print("及格")else:print("不及格")(4)分支嵌套语句嵌套就是一种包含关系,当外层的分支条件成立的情况下,再执行内层的分支条件,分支语句嵌套的格式如下图所示。首先计算表达式A,如果其值为True或者非空非零,则计算表达式B,如果其值为True或者非空非零,则执行语句块B,否则执行语句块C;如果表达式A计算的结果都为False(空值/0),则执行语句块D。使用分支嵌套语句来实现分数是90分及以上的,则显示优秀;如果大于等于60分,显示为合格;小于60分则显示不合格。score=float(input("请输入成绩:"))ifscore>=60:ifscore>=90:print("优秀")else:print("及格")else:print("不及格")2、循环结构程序设计(1)while循环语句的格式while表达式:语句块while循环语句可以解决程序中需要重复执行的操作,其循环执行的次数由循环条件决定,当循环条件满足时,重复执行某程序段,直到循环条件不成立为止。反复执行的程序段称为循环体,循环条件必须要在循环体中改变,否则可能会出现无限循环的结果。Python是区分大小写的,所以我们在写while的时候,注意都是小写字母,否则会出现语法错误。while循环语句首先计算表达式的值,如果表达式的值为True(非空/非0),则执行语句块,执行完后,再一次计算表达式的值,如果表达式的值仍然为True(非空/非0),则继续执行语句块;如果表达式的值为False(空/0),则结束while循环语句,语句执行流程如下图所示。实践案例1:任意输入一个正整数,求出1到该数的和,参考代码如下。#求1+2+……+n的和n=int(input("请输入求和的终止值:"))#初始化count=1sum=0#while循环求和并计数whilecount<=n:sum=sum+countcount=count+1#输出结果print("1+2+……+%d=%d"%(n,sum))举一反三:while循环语句打印九九乘法表。(2)for循环语句for<取值>in<序列或迭代对象>:语句块Aelse:语句块Bfor循环语句执行步骤:①从序列或迭代对象中依次取一个值;②执行语句块A;③不断重复①和②,直到序列或迭代对象全部取完。如果有else部分,则执行else语句块B,执行完毕,结束for循环,执行for之后的语句;如果没有else部分,则结束for循环,执行其后的语句。for循环中的range()函数参数说明:range(start,stop[,step])start:计数从start开始,默认从0开始;例如:range(5)等价于range(0,5)stop:计数到stop结束,但不包括stop;例如:range(0,5)是[0,1,2,3,4]没有5;step:步长,默认为1。例如:range(0,5)等价于range(0,5,1)如果有两个以上的条件,我们就要使用多分支语句了。实践案例2:for循环语句打印星号矩阵图,参考代码如下。#for循环语句打印星号矩阵图foriinrange(1,5):

forjinrange(1,6):

print('*',end='\t')

print()以上代码的运行结果是输出一个四行五列的星号矩阵图。* * * * * * * * * * * * * * * * * * * * 举一反三:for循环语句打印九九乘法表三、总结通过本次任务的学习和实践,使我们熟悉了四种分支语句、两种循环语句的使用格式和注意事项,并且能够熟练地使用流程控制语句来完成相应功能的开发。在通常情况下,分支语句只会执行其中的一个分支,当表达式的值为真时,执行该分支语句块,并且该语句块后的代码不再执行,跳出多分支语句,执行多分支语句后面的代码。而循环语句要特别注意,循环条件要能使循环最后结束,否则程序会一直运行下去,进入无限循环。当然,无限循环在日常生活中也是有需要的,比如坚强体育锻炼,让我们在享受体育乐趣的同时增强体质、锤炼意志,从而养成终身运动、终身学习的好习惯。作业布置for循环语句打印九九乘法表教学反思情景二控制程序的结构主题有趣的随机数序号3课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:熟练掌握导入模块的三种方式。知识目标:了解模块的功能和常用的模块。素质目标:接受新知识、自主学习的能力。教学重点导入模块的三种方式教学难点常用模块相关属性教学过程设计备注一、引出本节上课内容在程序开发过程中,通常都是由多名程序员分工协作一起完成程序的开发;Python在安装后就已经有了内置模板,并且还可以使用功能丰富的第三方开源模块,这使用编写代码不必从零开始,大大提高了代码的开发周期提高效率。二、教学内容1、导入模块Python中提供了以下三种方式导入模块:import模块名import模块名as模块别名from模块名import函数名/子模块名/属性在安装Python时就默认已经安装好的模块被称为“标准库”,也称为内建库,比如math模块。有人把它们称为Python自带的电池,意思是Python拥有无限能量。熟悉标准库的使用是编程必须的。math模块中有大量常用的数学计算函数,如三角函数(sin(),cos(),tan())、反三角函数(asin(),acos(),atan())、对数函数(log(),log10(),log2())等,还有数学常量如pi(圆周率)、e等。可以用dir(math)查看math模块中的函数(方法)与常量(属性)。Python自带的模块或者是第三方库,在安装时,系统自动将模块的存放路径记录在sys.path列表中。那么自己编写的模块,如何能让解释器知道路径呢?其实有两种方法。第一种方法是在sys.path列表里添加自己所写模块的路径;第二条方法是设置系统的环境变量,使其包含模块的路径。importsys #导入sys模块sys.path.append('d:\\py') #sys.path列表里追加.py文件的路径d:\\pyimportdemo #导入demo.py模块demo.myfunction(5) #文件名.函数名(参数)Python中的random模块用于生成随机数,它提供了很多函数。random.random()#用于生成一个0到1的随机浮点数:0<=n<1.0random.randint(a,b)#返回a,b之间的整数,注意:a,b均是整数,且a要比b小random.randrange([start=0],stop[,step=1]) #只能传入整数,且不包括stoprandom.choice(sequence) #从sequence(序列,列表、元组和字符串)中随机获取一个元素random.shuffle(x) #用于将列表中的元素打乱顺序random.sample(sequence,k) #从指定序列中随机获取k个不重复元素作为一个列表返回,sample函数不会修改原有序列。2、常用模块datetime模块定义了以下几个类,来处理时间和日期。(1)datetime.date:表示日期的类。常用的属性有year,month,day;(2)datetime.time:表示时间的类。常用的属性有hour,minute,second,microsecond;(3)datetime.datetime:表示日期和时间的类;(4)datetime.timedelta:表示时间间隔,即两个时间点之间的长度。calendar模块是一个日历模块,用于生成日历等。3、猜数字游戏(1)首先:导入随机模块importrandom(2)再将:姓名存入列表names=['张三','李四','王五','赵六','孙七','周八','吴九','郑十'](3)最后:使用流程控制语句实现随机点名使用while循环语句创建一个无限循环,在循环体中让用户选择是点名还是退出。当用户输入大写或小写的N时,使用break语句退出循环结束程序;当用户输入其它键时,使用随机模块.函数()输出随机点名姓名,参考代码如下:importrandomn=random.randint(0,100)foriinrange(5):temp=int(input("请输入你猜的整数:"))iftemp==n:print('恭喜你,猜中了!')eliftemp>n:print('猜大了')else:print('猜小了')else:print('游戏结束!')print('你要猜的整数是:{}'.format(n))>>>y=[1,'a','python',9.9]>>>type(y)<class'list'>三、总结通过本次任务的学习和实践,了解了什么是模块以及导入和使用模块的方法,掌握了break和continue语句的区别,并且能够熟练地根据相关要求选择该模块合适的函数来解决实际问题。内置模块可以极大地提升程序开发的效率;自定义模块将程序的各部分组件共用的功能提取出来放到一个模块中,其它组件通过导入的方式使用该模块,从而提高代码的重用性、易于功能扩展和维、有利于团队协作。作业布置编写程序实现抢红包功能教学反思情景二控制程序的结构主题学生信息管理系统序号4课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:能够使用for循环和if分支语句结合起来实现学生信息的实现显示、增加、删除、修改、查询学生信息和退出管理系统六个模块相应功能。知识目标:了解简易系统的开发过程。素质目标:接受新知识、自主学习的能力。教学重点for与else,for与if语句配合使用教学难点教学过程设计备注一、引出本节上课内容编写一款面向过程简易学生信息管理系统,学生信息管理包括:显示学生信息、增加学生信息、删除学生信息、修改学生信息、查询学生信息和退出管理系统共六个功能选项。要求:每个选项之间可以来回自由地切换,根据用户的不同选择分别实现显示、增加、删除、修改、查询学生信息和退出管理系统六个模块相应功能。二、教学内容1、需求分析学生信息管理系统包括:显示、增加、删除、修改、查询和退出共六个功能选项。每个选项之间可以自由切换;每个选项独立完成如下功能。1.显示学生信息:是输出所有学生的相关信息,使用for循环遍历输出所有学生的信息即可;2.增加学生信息:可以将学生记录保存到列表当中,再使用append方法向列表尾部追加记录;3.查询学生信息:使用for循环遍历学生信息,再用if分支语句进行查询匹配,找到了则直接输入学生的相关信息,没有找到则输出查无此人;4.修改学生信息:首先进行查询,如果有匹配,则更新当前学生的信息;没有找到则输出查无此人;5.删除学生信息:首先进行查询,如果有匹配的学生记录,使用remove方法将其删除;没有找到则输出查无此人;6.退出管理系统:直接退出学生信息管理系统。2、重要知识点1.显示学生信息:while循环语句、if分支语句、for循环语句、range()函数、list[]列表、print()函数;2.增加学生信息:if分支语句、input()函数、dict{}字典、append方法、print()函数;3.查询学生信息:if分支语句、input()函数、for循环和else语句、list[]列表、print()函数、break语句;4.修改学生信息:if分支语句、input()函数、for循环和else语句、list[]列表、print()函数、break语句;5.删除学生信息:if分支语句、input()函数、for循环和else语句、remove方法、print()函数、break语句;6.退出学生信息:if分支语句、break语句。3、程序开发过程(1)操作选项显示以使用多条print()语句逐一输出上述每一行的内容;推荐将上述内容定义为多行字符串,(使用三个成对的单引号或者三个成对的双引号)以所见即所得的方式直接输出,参考代码如下。#学生信息管理系统操作选项infor='''学生信息管理系统v1.0******************************** 1.显示学生信息 2.增加学生信息 3.查询学生信息 4.修改学生信息 5.删除学生信息 0.退出管理系统********************************'''print(infor)(2)显示学生信息当前学生信息系统中没有存储任何内容,如果要显示学生信息,那么需要在程序代码中手动添加学生的信息。为了便于实现每个模块的具体功能,我们新建列表students来保存所有学生的信息,每个学生的信息以键值对的方式存储在字典中,有几个学生就有几个字典,各字典间之用逗号分隔,参考代码如下。students=[

{'stid':101,'stname':'张三','stage':18,'stgender':'male'},

{'stid':102,'stname':'李四','stage':19,'stgender':'female'},

{'stid':103,'stname':'王五','stage':20,'stgender':'male'}

]实现每个选项之间来回自由切换,肯定需要用到循环,在不知道循环次数的条件下,推荐使用while循环,并且将while循环条件设置为True(无限循环);再使用input()函数录入用户的操作序号;最后使用if多分支语句根据用户不同的选择,运行不同的模块,实现不同的功能,主循环参考代码如下。whileTrue:action=int(input('请输入你要操作的序号:'))ifaction==1: #显示学生信息 #显示学生信息模块elifaction==2: #增加学生信息 #增加学生信息模块elifaction==3: #查询学生信息 #查询学生信息模块elifaction==4: #修改学生信息 #修改学生信息模块elifaction==5: #删除学生信息 #删除学生信息模块elifaction==0: #退出管理系统 #退出管理系统模块else:print()print('你输入的序号有误,请重新输入!')至此,显示学生信息的所有条件都已具备,现在即可使用for循环遍历输出students列表中的所有学生的信息,参加代码如下。ifaction==1: #显示学生信息foriinrange(len(students)):print(students[i])print('显示学生信息成功')print()(3)增加学生信息现在students列表中保存有三条学生记录,需要增加学生记录的话,首先使用多条input()函数让用户逐一添加学生的学号、姓名、年龄和性别;将刚才用户录入的所有学生信息以键值对的方式保存到一个临时字典中;最后使用append方法将临时字典追加到students列表中保存,参考代码如下。elifaction==2: #增加学生信息a=input('请输入学生的学号:')b=input('请输入学生的姓名:')c=input('请输入学生的年龄:')d=input('请输入学生的性别:')temp={'stid':a,'stname':b,'stage':c,'stgender':d}students.append(temp)print(

温馨提示

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

评论

0/150

提交评论