Python程序设计教程(工作手册式) 教案全套 王瑶 情景1-7 揭秘Python程序设计之谜 - Python与电子商务_第1页
Python程序设计教程(工作手册式) 教案全套 王瑶 情景1-7 揭秘Python程序设计之谜 - Python与电子商务_第2页
Python程序设计教程(工作手册式) 教案全套 王瑶 情景1-7 揭秘Python程序设计之谜 - Python与电子商务_第3页
Python程序设计教程(工作手册式) 教案全套 王瑶 情景1-7 揭秘Python程序设计之谜 - Python与电子商务_第4页
Python程序设计教程(工作手册式) 教案全套 王瑶 情景1-7 揭秘Python程序设计之谜 - Python与电子商务_第5页
已阅读5页,还剩200页未读 继续免费阅读

下载本文档

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

文档简介

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

情景一揭秘Python程序设计之谜教学课题IDLE的下载安装和使用序号1课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:掌握下载和安装IDLE的方法,熟练掌握IDLE的命令(交互)模式和程序(脚本)模式,熟练应用IDLE来编写、运行Python程序。知识目标:认识Python语言、了解Python发展历史、特性和应用范围。素质目标:接受新知识、自主学习的能力。教学重点IDLE的使用教学难点Python程序的调试运行教学过程设计备注一、课程概述介绍教师个人信息、联系方式等;介绍Python程序设计课程在计算机应用技术专业中的地位;介绍Python技术的应用领域;介绍Python程序设计课程的考核等。二、教学内容1、Python语言的发展历史python是1989年圣诞节期间,由荷兰人GuidovanRossum(吉多.范罗苏姆)在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(MontyPython'sFlyingCircus)。python2.0于2000.10.16日发布,增加现实完整的垃圾回收,并支持Unicode。2018年3月,该语言作者在邮件列表上宣布Python2.7将于2020年1月1日终止支持。Python3.0于2008.12.3日发布,此版不完全兼容之前的Python源代码。不过,很多新特性后来也被移植到旧的Python2.6/2.7版本。Python的特点易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。易于阅读:Python代码定义的更清晰。易于维护:Python的成功在于它的源代码是相当容易维护的。一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。数据库:Python提供所有主要的商业数据库的接口。GUI编程:Python支持GUI可以创建和移植到许多系统调用。可嵌入:你可以将Python嵌入到C/C++程序,让你的程序的用户获得“脚本化”的能力。3、IDLE的下载在Windows平台下载IDLE的步骤打开浏览器,访问Python官网/,单击“Downloads”菜单下的“Windows”版本如果需要下载其它历史版本,可以直接进入Downloads按钮,选择符合本地计算机系统和位数的Python版本即可。点击Download

后边的链接就可以直接下载了。4、IDLE的安装双击下载的文件,此时会弹出一个Python安装向导的窗口。勾上“AddPython3.9toPATH”,然后单击“Customizeinstallation”按钮。默认选择,单击“Next”按钮。在弹出的窗口中可以修改安装路径。安装成功之后,会弹出安装成功的窗口。5、让同学们在计算机上把Python的下载与安装实践操作一遍。6、IDLE的使用IDLE(IntegratedDevelopmentandLearningEnvironment)官方标准集成开发环境,从官网下载Python并安装后,同时就安装了IDLE。安装完成后,使用组合键“Win+R”打开运行窗口,输入“cmd”,打开命令提示符窗口,在窗口中输入“python”或“py”,此时如出现下图所示的信息,则说明Python已经成功安装。当然,我们也可以使用开始按钮,找到Python3.9下的IDLE(Python3.964-bit)官方标准集成开发环境,到如下图所示。”>>>”提示符表示Python已经做好准备,等待你向它发布命令,让它干活。7、让同学们在计算机上把IDLE的命令(交互)模式和程序(脚本)模式都实践操作一遍,加深印象。三、总结通过本次任务的学习和实践,我们了解了Python语言的发展历史、特点和应用领域,能够独立完成IDLE的下载与安装任务,并且能够熟练地掌握和使用IDLE的命令(交互)模式和程序(脚本)模式来完成基本的操作。同时建议大家树立版权意识,通过官方网站下载正版软件,避免到陌生的网站和平台下载未经验证的软件。作业布置使用IDLE输出:“好好学习,天天向上!”教学反思教师总结本次课的知识点,重点强调Python语言的优点和应用领域,突出Python程序设计的重要性和应用性,从而提高同学们的学习兴趣。结合教学重点和难点,对所学知识进一步强化。情景一揭秘Python程序设计之谜主题输入与输出序号2课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:在PyCharm集成开发环境中,编写程序实现用户信息的录入(包括用户名、密码、姓名、性别、年龄等),并将上述信息以格式化输出到控制台。知识目标:了解PyCharm的版本、功能和创建、运行Python程序的步骤。素质目标:接受新知识、自主学习的能力。教学重点使用PyCharm开发环境编写Python程序教学难点Python程序的调试运行教学过程设计备注一、复习上一节上课内容并引出本节上课内容Python语言的发展历史,Python的下载与安装,IDLE的使用;同学们上节课已经掌握了Python自带IDLE的两种应用模式,大家觉得如果使用这两种模式中的一种来开发一个应用程序,方便吗?有没有困难?显而易见,Python自带IDLE应用到真实的开发案例中就有些功能不足、捉襟见肘了。大致原因有:界面不友好、没有代码提示功能、自带的数据包很少等。论语有云:“工欲善其事,必先利其器”,本次课我们一起来学习让Python开发事半功倍的PyCharm。二、教学内容1、PyCharm的介绍PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。PyCharm是由JetBrains打造的一款PythonIDE,同时支持GoogleAppEngine,PyCharm支持IronPython。这些功能在先进代码分析程序的支持下,使PyCharm成为Python专业开发人员和刚起步人员使用的有力工具。PyCharm分为专业版(Professional)和社区版(Community),这两种版本的区别是:专业版:功能全,适合专业开发人员,需要收费。社区版:部分功能,适合学生、教育者,免费。相比专业版,社区版缺少专业版中的Web开发,PythonWeb框架,Python的探查,远程开发等功能。2、PyCharm的下载打开PyCharm官网(/pycharm),单击“Download”。选择”Community”社区版,单击“Download”下载即可。3、PyCharm的安装下载完成后,双击安装包进行安装,单击“Next”按钮;单击"Browse…修改安装路径,建议不要使用中文字符,单击“Next”按钮。根据自己的实际情况勾选相应选项,单击“Next”开始安装;稍等片刻,出现安装成功提示,单击“Finish”,重启电脑完成安装。4、创建PyCharm项目第一步:双击桌面“PyCharmCommunityEdition2021.2”启动程序;勾选同意后单击“Continue”,单击“NewProject”按钮创建新项目。第二步:设置“NewProject”相应选项。第三步:在新建好项目上单击右键,创建Python文件。第四步:编写Python文件,在代码编辑区单击右键选择“Runcqcvc”或“Ctrl+F5”键,运行该文件。5、输入不同的数据类型input函数默认接收到的数据为都为字符串类型。如果需要输入不同的数据类型,那么就要做一个工作,将用户录入的字符串类型转为整型即可。6、输出转义字符中的特殊字符转义字符功能转义字符功能\n换行符,光标位置移到下一行开头\r回车符,将光标位置移到本行开头。\r后面的内容移到字符串开头,并逐一替换开头部分字符,直至将后面的内容完全替换\t水平制表符,即Tab键,一般相当于四个空格\b退格(Backspace)\’输出单引号\”输出双引号\续行符(在行尾时)\\输出反斜线符号Python支持格式化字符串的输出,%运算符通常被称为字符串取模运算符,可用于字符串格式化,最基本的用法是将一个值插入到一个有字符串格式符%x的字符串中。在字符串中把需要输出的变量值用{}来代替,然后用format()来修改使之成为想要的字符串,默认情况下按照从左往右的顺序自动进行替换;但也可以在大括号中写入序号让替换的值根据位置而改变;同时还可以使用关键字来实现一一对应的赋值替换,其中数字的精度通过在大括号前加冒号,格式为{:.xf}如果x为整数则没有意义。7、让同学们在计算机上把PyCharm的下载安装与使用实践操作一遍,老师对同学们的操作进行指导和答疑。三、总结通过本次任务的学习和实践,掌握了PyCharm的下载安装与使用、输入与输出函数的使用方法。并且能够熟练地使用输入函数完成信息的录入以及数据类型的转换、使用输出函数进行格式化输出。同时理解在程序编写过程中代码规范的目的和意义,不仅仅可以增加程序的可读性和可维护性,更重要的是可以促进团队合作、降低维护成本、有助于程序员自身的成长。作业布置使用PyCharm输出:“书山有路勤为径,学海无涯苦作舟”教学反思教师指出学生实践中可能出错和已经出错的地方,结合教学重点和难点,对所学知识进一步强化。情景一揭秘Python程序设计之谜主题第三方库的安装序号3课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:掌握两种安装第三方库的方法。知识目标:了解标准库与第三方库的区别、常用的第三方库名和功能。素质目标:接受新知识、自主学习的能力。教学重点第三方库的安装教学难点常用的第三方库名和功能教学过程设计备注一、复习上一节上课内容并引出本节上课内容我们使用Python来编写程序完成特定的功能,如果所有功能都重新开发的话,势必会延长开发的周期,增加开发的成本。其中Python的特点之一就是因为其本身具有丰富而且强大的库的第三方库,从而使编程效率大大提高。我们只需要完成第三方库的安装,再导入后调用,即可实现具体功能。二、教学内容1、第三方库简介Python有两个库,分别是标准库与第三方库。标准库是随着Python安装的时候默认自带的库;而第三方库则需要下载后安装到python的安装目录下。强大的标准库奠定了python发展的基石,丰富和不断扩展的第三方库是python壮大的保证。可以说不断丰富并完善的Python库才是Python真正的魅力所在。我们可以把第三方库理解为一个黑匣子,它将编程过程中需要实现的功能进行归类,再对某一类功能进行开发后封装,以第三方库的形式表现出来。使用者不用关心它的内部逻辑和实现过程,只需要去寻找、掌握什么样的库可以帮助我们实现具体的功能,然后根据库的使用方法直接导入对应第三方库后再调用即可,常用的第三方库名和功能如下表所示。库名功能库名功能NumPy数据分析和计算基础库Flask轻量级Web开发框架Matplotlib二维数据可视化WeRoBot微信机器人开发框架PIL图像处理SymPy数学符号计算工具Scikit-Learn机器学习和数据挖掘Pandas高效数据分析和计算RequestsHTTP协议访问及网络爬虫Networkx复杂网络和图结构的建模和分析Jieba中文分词PyQt5基于Qt的专业级GUI开发框架BeautifulSoupHTML和XML解析器PyOpenGL多平台OpenGL开发接口WheelPython第三方库文件打包工具docoptPython命令行解析PyInstaller打包Python源文件为可执行文件PyGame简单小游戏开发框架DjangoPython最流行的Web开发框架Flask轻量级Web开发框架2、通过PyCharm安装第三方库双击桌面“PyCharmCommunityEdition”快捷方式打开项目,单击“File”——“Settings”,在打开的对话框中单击“Project:xx”左边的小箭头符号(xx是新建的项目名称)——再单击“PythonInterpreter”。此时可以看到已经安装成功的第三方库以及版本。安装第三方库单击对话框右侧的“+”号,在弹出的“AvailablePackages”对话框中,左上方搜索栏中(放大镜后)输入你要安装的第三方库名(这里我们以安装numpy为例),PyCharm会自动搜索输入的库名,此时左侧显示与该库名类似的第三方库;右上方显示当前库的信息和版本号、右下方可以选中复选框选择你需要下载的版本(如果不勾选则默认为最新版本)如图1-27所示,最后单击“InstallPackage”开始自动安装,具体安装时间同第三方库的大小和网络速度有关。安装结束后,返回“Settings”,会看到新安装的第三方库和安成功提示信息。3、通过pip命令安装第三方库首先使用组合键“Win+R”打开运行窗口,输入“cmd”,打开命令提示符窗口,在窗口中输入“piplist”查看已安装的包,如果出现了WARNING提示,说明pip版本需要更新,只需要将提示信息后的更新命令复制后粘贴到提示后,回车确认即可完成更新。将pip更新以后,使用“pipinstall第三方库的名”就可以自动下载并安装第三方库了。如果在命令行末尾看到有“Successfullyinstalled”信息即安装成功,操作过程如图1-30所示。最后使用“piplist”命令进行安装验证如下图所示,如果想要卸载已经安装过的第三方库使用“pipuninstall库名”即可卸载。4、注意事项1.某些第三方库之间是有依赖关系的,可以使用“pipshow库名称”进行查看;2.使用pip命令安装第三方库,有时速度较慢,可以在“pipinstall第三方库名”后加一个“-i”参数,后面可以指定国内的一个镜像源,用这个方法可以更加快速的安装好第三方库。(pipinstallnumpy-i/simple)三、总结通过本次任务的学习和实践,我们了解了第三方库重要的意义、常用第三方库的名称和功能、Python官方第三方库的地址和国内镜像链接,掌握了安装第三方库的三种方法:能够独立通过PyCharm、pip命令和下载whl文件到本地离线安装第三方库,同时还掌握了第三方库的查询、更新和卸载的方法。强大的标准库奠定了python发展的基石,而不断丰富和扩展的第三方库则是python的魅力所在,目前第三方库已有几十万种,很多第三方库不仅功能强大而且还十分健壮,值得我们借鉴和学习。这正如牛顿所说:“如果说我比别人看得更远些,那是因为我站在了巨人的肩上”。作业布置安装第三方库Python-docx、xlrd、xlwt和Python-pptx教学反思情景一揭秘Python程序设计之谜主题人机交互序号4课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:能够根据需要划出流程图,并且输入用户信息后能够格式化输出。知识目标:了解IPO程序设计模式、常用流程图符号以及代码注释的两种形式。素质目标:接受新知识、自主学习的能力。教学重点根据要求绘制流程图,并完成四则运算教学难点格式化输出教学过程设计备注一、复习上一节上课内容并引出本节上课内容人机交互技术(Human-ComputerInteractionTechniques)是指通过计算机输入、输出设备,以有效的方式实现人与计算机对话的技术。人机交互技术包括机器通过输出或显示设备给人提供大量有关信息及提示请示等,人通过输入设备给机器输入有关信息,回答问题及提示请示等。人机交互技术是计算机用户界面设计中的重要内容之一。本次任务需要完成两个综合练习,一是输入数字后进行四则运算(画出流程图)、二是输入用户信息后格式化输出(增加注释)。二、教学内容1、IPO程序设计模式程序设计的关键是对问题进行分析和处理,需要弄清楚问题的输入数据是什么?需要得到什么结果?重点是如何根据输入数据获得输出结果,也就是如何对输入数据进行处理,获得最终结果,这个处理数据的过程,称之为算法。通常将程序设计分为三个步骤:即输入数据、处理过程(算法)、输出结果,称之为IPO程序设计模式。I:(Input)输入数据,用到的标准输入设备,就是鼠标和键盘;P:(Process)处理过程(算法),指中央处理器对储存在内存中的数据进行处理;O:(Output)输出结果,通常用到的标准输出设备,就是显示器。比如,用户在键盘上输入任意两个数字,经过求和运算,最后把结果输出到屏蔽上,就是一个IPO程序设计模式。2、Python流程图符号流程图是一种用于表示算法或代码流程的框图组合,它以不同类型的框代表不同种类的程序步骤,每两个步骤之间以箭头连接起来。在程序开发中使用流程图,有助于规划高效的程序结构、便于他人交流同时也是撰写指导文档不可缺少的内容。Python常用流程图符号如下图所示。3、代码注释代码的注释是程序设计中不可缺少的,良好的注释可以增加程序的可读性,也方便程序员后期对代码进行维护。Python代码的注释有两种形式,一种是单行注释,一种是多行注释,首先我们来看一下单行注释。(1) 单行注释:以“#”开始,表示本行是注释行,也就是“#”之后的内容是注释信息,当程序执行时,这部分内容会被忽略。代码如下所示:#用户输入成绩score=float(input(“请输入成绩:”))在Pycharm中,可以使用快捷键批量添加单行注释,直接选中要添加注释的语句,使用组合键“Ctrl+/”即可批量注释多行。但是如果使用Python官方集成开发环境,要批量添加多行注释的话,就要使用第二种注释方法:三引号。(2) 多行注释:用三个单引号“’’’”或者是三个双引号“"""”将注释的内容括起来。多行注释通常用来为Python文件、模块、类或者函数等添加版权、功能描述等信息,代码如下所示:'''这段程序的功能是:判断输入成绩是否大于等于60,是则输出及格。'''score=float(input(“请输入成绩:”))特别说明:在Python中,如果多行注释(三个单引号或三个双引号)作为语句的一部分出现,就不能再将它们视为多行注释的标记,而应看做是字符串的标志。比如,我们使用三个单引号将'''Hello,World!'''放在print()输出函数中,这个时候三个单引号之内的信息就不再是注释了,而是输出的字符串。print('''Hello,World!''')语句的执行结果为:“Hello,World!”由此可见,Python解释器没有将这里的三个单引号看做是注释,而是将它们看作是字符串的标志。4、输入数字后进行四则运算现在按任务要求将流程图符号进行组合连接画出四则运算中的加法流程图如下图所示,其余三种运算与加法流程图类似。紧接着,开始程序具体功能的实现。此时需要特别注意,在Python3.x中input()函数默认接收到的数据为字符串型,如果将两个字符串类型相加实则完成字符串连接的功能,而非真正的相加。所以需要将字符串型转为浮点型后,再进行数值之间的相加,源代码和运行结果如下图所示。5、输入用户信息后格式化输出首先完成用户名、密码、姓名、性别、年龄等信息的录入,使用多个input()来重复录入即可,再将录入后不同的个人信息分别保存到不同的变量中。在字符串中把需要输出的变量值用{}来代替,然后用format()来修改使之成为想要的字符串,其中数字的精度通过在大括号前加冒号,格式为{:.xf},源代码如下图所示。执行代码后依次输入:用户名、密码、姓名、性别、年龄和职务,回车确认后,格式化输出结果如下图。三、总结通过本次任务的学习和实践,掌握了IPO程序设计模式、Python流程图符号和代码注释的两种方法。并且能够根据要求熟练地使用流程图符号画出对应流程图、使用input函数完成各种类型信息的录入、使用print函数进行格式化输出。同时理解了代码注释的意义,对于复杂的操作,操作前应该写上多行注释、不是一目了然的代码,应在其行尾添加注释。对于许多程序员来说,基本的原则之一就是“:让代码自己说话”。代码的注释不仅仅要为将来可能维护你代码的人考虑,而且要考虑到读注释的可能是你。作业布置教学反思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('增加学生信息成功!')print()(4)查询学生信息查询学生信息模块中,首先使用input()函数让用请输入需要查询的学生姓名(或学号);使用for循环语句将students列表中保存的信息读取后逐一赋值给临时变量i;最后使用if分支语句对用户查询的姓名和临时变量i中读取到的姓名进行比较,如果找到了则输出当前学生的所有信息并退出循环;如果没有找到则查询查无此人,参考代码如下。elifaction==3: #查询学生信息x=input('请输入你要查询的学生姓名:')foriinstudents:ifi['stname']==x:print(i)print('查询学生信息成功')breakelse:print('查无此人!')print()(5)修改学生信息将查询模块和增加模块的功能结合起来即可实现修改学生信息模块。首先是查询学生信息,如果找到了则直接把修改后的学生信息保存即可并退出循环;如果没有找到则输出查无此人,参考代码如下。elifaction==4: #修改学生信息x=input('请输入你要修改的学生姓名:')foriinstudents:ifi['stname']==x:i['stid']=input('请输入新的学号:')i['stname']=input('请输入新的的姓名:')i['stage']=input('请输入新的的年龄:')i['stgender']=input('请输入新的的性别:')print(i)print('修改学生信息成功!')breakelse:print('你输入的学生未找到!')print()(6)删除学生信息首先要进行查询,如果有匹配的学生记录,使用remove方法将其删除并使用break语句退出循环;如果没有找到则输出查无此人,参考代码如下。elifaction==5: #删除学生信息x=input('请输入你要删除的学生姓名:')foriinstudents:ifi['stname']==x:students.remove(i)print('删除学生信息成功')breakelse:print('你输入的学生未找到!')print()(7)退出学生信息管理系统在整个学生信息管理系统六个功能模块中,退出模块是最简单的,只需要使用break语句退出while无限循环即可,参考代码如下。ifaction==0:print()三、总结通过本次任务的学习和实践,了解了简易学生信息管理系统的开发过程,熟练地掌握和使用流程控制语句对不同数据类型进行存储、追加、查询、修改和删除等常见操作方法;激发同学们的学习兴趣、提升实践操作水平,让同学们更快、更好地掌握Python语言的基础知识点。当然本次任务是面向过程的开发,待学习了项目三之后,可以将面向过程的学生信息管理系统升级为面向对象的学生信息管理系统。作业布置优化学生信息管理系统教学反思Python程序设计工作手册式教材教案专业名称:课程名称:Python程序设计任课班级:教师姓名:所属院系:职称:课时:64使用教材:

情景三优化程序的性能教学课题函数序号1课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:能够根据实际需求编写自定义函数,并通过调用该函数实现具体功能。知识目标:了解函数的功能和特点、函数参数及调用方法。素质目标:接受新知识、自主学习的能力。教学重点编写自定义函数教学难点函数参数教学过程设计备注一、复习上一节上课内容并引出本节上课内容在上一节中我们已经学习学生信息管理系统,掌握了使用流程控制语句对不同数据类型进行存储、追加、查询、修改和删除等常见操作。但是同学们发现了吗?很多操作过程的代码非常类似,我们完成可能将这些类似的代码定义在一个函数中,需要使用的时候直接调用就可以了,既减小程序的长度,同时又提高代码可重用性。二、教学内容1、函数的定义在实际开发中,如果想把一段功能独立的代码进行封装,我们就可以在这段代码的上方,先写上def关键字(def这个关键字是英文单词define的缩写,它的中文含义就是定义),def之后先空格,然后再给你这段代码取个名字。在这里,友情提示一下,我们函数是对功能的封装,取的这个名字,最好能表达函数所要实现的功能,这样更加方便记忆和调用,所以函数名最好是能见名知意。函数名的后边紧跟的是一对小括号或者叫圆括号,圆括号的后面再紧跟一个重要的冒号。这一行,称为函数头部的定义,函数头部定义的四个元素的顺序一定要记牢:首先是关键字def,然后空格再是函数名,函数名后紧跟一对圆括号,圆括后紧跟一个冒号。冒号后一定要换行缩进再定义函数体。函数体内就是我们要封装的函数功能代码。注意函数体内的代码都要以关键字def为参照进行缩进。这就是函数定义的语法格式,一句话讲:函数的定义分为函数头部的定义和函数体的定义。2、函数调用函数的定义实现了函数的功能,函数定义好了,我们需要的这种特殊的积木也就造好了。如果不用放在哪也就只是摆设,怎么将其用起来,堆砌自己的Python程序呢?那就是我们要介绍的第二个问题,即函数调用。函数调用很简单,通过函数名和它后边那对圆括号,便可完成,后边那对圆括号叫形参表。我们先来看一个简单的案例:假如,我们要编写一个say_hello的函数,封装三行打招呼的代码,并在函数下方调用打招呼的代码。首先,我们写上关键字def,然后空格写上函数名say_hello,say_hello后面紧跟一对圆括号,圆括号后紧跟一个冒号,这就是函数头部定义的四要素,代码如下所示。defsay_hello():print("Hello!")print("Howareyou!")print("Goodmorning!")3、形参形参是指定义函数时,圆括号中的参数,形参是用来接收实参的值的,它只能在函数内部作为变量使用。在定义函数头部时,圆括号中便可以列举出需要用到的形参的名称,多个形参之间用逗号分隔。例如,定义一个求两数之和的函数,代码可以编写为:defsum(num1,num2):result=num1+num2print(result)形参的作用有两个:一是告诉外部把值传到我这里来,二是在函数内部当作变量运算。4、实参实参是指调用函数时,圆括号中的参数,实参用来存放数据并将数据传递给形参。在程序中一般把需要传递给函数的数据依次列举在实参表里,以逗号隔开。刚才定义的求和的sum()函数调用时,如果是将12和5两数求和,可以将被加数12和加数5的值写进实参表,形式为:sum(12,5)。实参的作用只有一个:把数据传递给形参,代码如下。sum(12,5)5、变量的作用域变量的作用域就是变量在什么范围内起作用,一个变量在不同的位置,它的作用域也是不一样的。定义在函数外部的变量称为全局变量,全局变量的作用域是整个全局。局部变量是在函数的内部定义,只能在其声明的函数内部使用。接下来,我们一起来讨论一个小问题:全局变量和局部变量的名字可以相同吗?如果它们的名字都是一样的,那是先找全局变量还是局部变量呢?我们还是用一个案例来解答,参考代码如下。deftestvar():n=1returnn=0print('调用前{}'.format(n))testvar()print('调用后{}'.format(n))上述代码运行后,输出的两次结果都是0。这是因为当函数中的局部变量和全局变量同名时,它们的作用域不同,实则这两个变量为不同的对象。6、编写函数求圆的面积在掌握了函数的定义、调用、参数、变量作用域和返回值后,现在着手编写一个函数实现随机输入三个圆半径,分别求出三个圆的面积。题目虽然比较简单,但是编写函数求圆的面积可以让我们学以致用、融会贯通。三、总结通过本次任务的学习和实践,使我们了解了函数的功能和特点,掌握了函数的定义和调用的方法,并且通过综合实训的引导,能够熟练运用多种方法编写函数来解决实际问题。如果需要编写的程序非常复杂,可以将其分解为多个函数,由团队成员分工协作一同来完成;函数也需要合作,合作才能共赢。作业布置编写函数求圆的面积教学反思编写函数实现具体要求可能有多种方法,尽量引导同学们多思考,多一种解题思路就多掌握一种解决问题的方法,一题多解可以更好地培养学生的思维能力。情景三优化程序的性能主题面向对象程序设计序号2课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:能够使用封装技术隐藏学生类中的属性和方法,并间接对其进行访问;能够熟练掌握单继承和多继承的,提高了代码的可重用性。知识目标:了解对象的概念以及如何创建和使用对象。素质目标:接受新知识、自主学习的能力。教学重点类的定义、对象的创建与使用教学难点多态教学过程设计备注一、复习上一节上课内容并引出本节上课内容在上一节中我们已经学习了函数,掌握了函数的定义和调用的方法,并且通过综合实训的引导,能够熟练运用多种方法编写函数来解决实际问题。如果需要编写的程序非常复杂,可以将其分解为多个函数,由团队成员分工协作一同来完成;函数也需要合作,合作才能共赢。本次课我们来学习论面向对象程序设计。二、教学内容1、对象的引入对象(object)是一种数据抽象或数据结构抽象,用来表示程序中需要处理或已处理的信息。Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象。数字、字符串、元组、列表、字典、函数、方法、类、模块等等都是对象。将对象的特征用状态和行为来表示,状态就是静态属性,主要指对象包含的各种信息,如学号、姓名、性别、籍贯等;行为就是动态属性,表示对象所具有的功能和操作,如学习、吃饭、体育锻炼等。2、类的定义如果把一个个学生对象归到一个集合,这就形成了类。类就如同模具,有了类这个模具,就可以很方便地创建对象了。在Python中,要创建一个个的对象,就要先创建模具,也就是先创建一个类。在Python的世界中也是同样道理,要创建一个个的对象,就要先创建模具,也是先创建一个类。那如何定义类呢?使用关键字class来表示类,后面加空格再写类名,类名后同样需要紧跟一个重要的冒号,即class类名:,在定义类时,类名要遵循大驼峰命名法。这一行,称为类的头部的定义,当类头部定义完后,就是类体的定义了。类体的定义必须换行并缩进对齐。类体中是类的成员,包括两个部分:成员变量和成员方法。成员变量即状态,用于描述类的状态属性和特征。成员方法即行为,用于定义类所要进行的操作。比如定义一个汽车类,它的成员变量有:品牌、型号、颜色、价格;它的成员方法有:行驶;参考代码如下。classCar:brand='长城'type='H6''color='黑色'price='120000'defdrive(self):print('Icanrun')3、对象的创建与使用汽车类创建完成以后,怎么通过汽车类来创建对象呢?这一步非常简单,可以使用对象名=类名()来完成,此时我们要创建一个car1对象名,则直接通过car1=Car()来完成对象的创建。对象创建以后,该对象如何使用呢?通常使用对象名.成员变量名和对象名.方法名(参数列表),来访问成员变量和成员方法,参考代码如下。car1=Car() #创建car1对象car1.brand='长安' #访问成员变量car1.type='CS75#调用成员方法car1.drive()4、封装封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。要了解封装,离不开“私有化”,就是将类或者是函数中的某些属性限制在某个区域之内,外部无法调用。在类中把某些属性和方法隐藏起来(或者说定义成私有的),只在类的内部使用、外部无法访问,或者留下少量接口(函数)供外部访问。Python中私有化的方法也比较简单,即在准备私有化的属性和方法名字前面加两个下划线(__)即可。学生类Student中成员变量年龄age和性别gender私有化;同时将成员方法学习study()封装起来,参考代码如下。classStudent:name='张三'__age=18__gender='男'def__study(self):print('努力学习')defeat(self):print('认真吃饭')defsleep(self):print('好好休息')5、继承在Python中一切皆对象,这些对象都是类的实例。这么多的类,每个类都是从头开始创建的吗?比如我要给小猫创建一个类,再给小狗创建一个类、还要给小猪创建一个类;每个类的代码都要打一遍,会不会太繁琐了呀,有什么方法能够提高编程的效率呢?小猫、小狗、小猪它们是完全不一样的吗?当然不是啦。它们也是有一些共同之处,比如都有两个眼睛、两个耳朵、四条腿,都能发出声音;我们可以利用它们的共通点,首先创建一个动物Animal类,然后根据动物Animal类分别创建小猫子类、小狗子类和小猪子类,此时这三个子类无需编码便可以拥有动物Animal类的方法和属性,这就是继承,这也是面向对象语言的一个重要特征。继承是指将一个具有广泛意义的类定义为父类(又称为基类或超类),新建的类可以继承一个或者多个父类,新建的类称为子类(派生类)。子类的创建语法格式如下。class子类名(父类名): 成员变量的定义(新增或修改) 成员方法的定义(新增或修改)创建一个动物类Animal,该类具有吃、喝、跑、睡4个方法,参考代码如下。classAnimal:defeat(self):print('吃',end='')defdrink(self):print('喝',end='')defrun(self):print('跑',end='')defsleep(self):print('睡')再创建一个猫类Cat,让它继承动物类,品种为狸花猫,并且新增一个捉老鼠的方法;再创建一个狗类Dog,让它继承动物类,品种为中华田园犬,并且新增一个看家护院的方法;参考代码如下。classCat(Animal):breed='狸花猫'defwork(self):print('捉老鼠')classDog(Animal):breed='

温馨提示

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

评论

0/150

提交评论