ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:32.16KB ,
资源ID:12146204      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12146204.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Python程序设计教学大纲段震.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Python程序设计教学大纲段震.docx

1、Python程序设计教学大纲段震Python程序设计教学大纲 安徽大学 计算机科学与技术 学院 2015 年 10 月课程性质与设置目的要求(前言)Python程序设计课程是计算机科学与技术学院各专业的专业选修课程。Python是一门开源的高级动态编程语言,支持命令式编程、函数式编程、面向对象程序设计,语法简洁清晰,并且拥有大量功能丰富而强大的标准库和扩展库。本课程将从Python语言的实现机制入手,结合示例程序和上机实验,较为系统地介绍Python语言的主要特征和编程技术。设置本课程的目的是:使学习者在全面了解Python技术历史、现状与发展趋势的基础上,系统掌握Python基本概念、编程思

2、想以及程序设计技术,具备熟练的Python编程技能和面向对象软件设计技术思想,完成本课程的学习后能够熟练地综合应用Python技术和面向对象的思想编写程序解决现实生活中的问题,最终提高程序设计水平和计算机应用能力,从而能胜任企业软件研发以及科研院所的研发、教学任务。学习本课程的要求是:学习者应理解Python的编程模式,熟练运用Python列表、元组、字典、集合等基本数据类型以及相关列表推导式、切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用正则表达式处理字符串,同时掌握不同领域的Python扩展模块,并能够解决实际问题。先修课程要求:无本

3、课程计划34学时,2学分。选用教材:董付国. Python程序设计(第2版).北京:清华大学出版社,2016.5.考核方法:考查教学进程安排表:周次学时数教 学 主 要 内 容教学环节备注13Python的安装与使用Python扩展库的管理Python中的数据类型讲课23Python中的内置函数、基本输入输出Python代码编写规范Python文件名和程序运行讲课33Python中的列表使用讲课43Python中的元组、字典及集合的使用讲课53选择和循环结构讲课63字符串和正则表达式讲课73函数的设计与使用讲课83类的定义与使用类的方法和属性讲课93文本文件的基本操作二进制文件操作文件操作和目

4、录操作讲课103异常处理结构与程序调试GUI编程讲课113+1网络程序设计多线程编程课程随堂测试讲课+测试第一章 基础知识一、学习目的Python语言的发展过程、安装及简单使用;Python程序设计中的基本知识;Python代码的编写规范;Python文件名的要求;Python程序的运行方式;编写自己的包以及基本示例。本章计划6学时。二、课程内容1.0 Python是一种怎样的语言Python是一门跨平台、开源、免费的解释型高级动态编程语言,同时也支持伪编译将Python源程序转换为字节码来优化程序和提高运行速度。Python支持命令式编程、函数式编程,完全支持面向对象程序设计,语法简洁清晰,

5、并且拥有大量的几乎支持所有领域应用开发的成熟扩展库。1.1 如何选择Python版本多版本共存与切换简便方法:更改系统环境变量path查看已安装版本的方法有时候可能需要同时安装多个不同的版本,并根据不同的开发需求在两个版本之间进行切换。1.2 Python安装与简单使用默认编程环境:IDLE1.3 使用pip管理第三方包Python2中需要单独安装下载地址:https:/pypi.python.org/pypi/pip安装方法:cmd=python get-pip.py用法示例Python3安装包中已默认包含pip1.4.1 Python的对象模型对象是python语言中最基本的概念,在pyt

6、hon中处理的每样东西都是对象。python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random( )等。常用内置对象1.4.2 Python变量在Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量。虽然不需要在使用之前显式地声明变量及其类型,但是Python仍属于强类型编程语言。Python还是一种动态类型语言Python采用的是基于值的内存管理方式Python具有自动内存管理功能在定义变量名的时候,需要注意的问题。1.4.3 数字数字是python

7、中最常用的对象,属于不可变对象。可以表示任意大小的数字。1.4.4 字符串用单引号、双引号或三引号括起来的符号系列称为字符串单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。1. 字符串合并2. 字符串格式化3. 转义字符1.4.5 操作符和表达式Python中很多运算符有多重含义,在程序中运算符的具体含义取决于操作数的类型。在Python中,单个任何类型的对象或常数属于合法表达式。1.4.6 常用内置函数内置函数不需要导入任何模块即可使用执行下面的命令可以列出所有内置函数 dir(_builtins_)1.4.7 对象的删除在Python中具有自动内存管理功能。可以使用de

8、l命令来显式删除对象并解除与值之间的指向关系。1.4.8 基本输入输出用Python进行程序设计,输入是通过input( )函数来实现的。尽管形式一样,Python 2.x和Python 3.x对该函数的解释略有不同。1.4.9 模块的使用Python默认安装仅包含部分基本或核心模块,但用户可以安装大量的扩展模块,pip是管理模块的重要工具import 模块名1.5 Python代码规范(1)缩进(2)注释(3)每个import只导入一个模块(4)如果一行语句太长,可以在行尾加上来换行分成多行,但是更建议使用括号来包含多行内容。(5)必要的空格与空行(6)适当使用异常处理结构进行容错,后面将详

9、细讲解。(7)软件应具有较强的可测试性,测试与开发齐头并进。1.6 Python文件名1.7 Python脚本的“_name_”属性1.8 编写自己的包与模块包可以看做处于同一目录中的模块。1.9 Python快速入门问题1:用户输入一个三位自然数,计算并输出其佰位、十位和个位上的数字。问题2:已知三角形的两边长及其夹角,求第三边长。问题3:任意输入三个英文单词,按字典顺序输出。三、重点、难点提示(一)Python中的对象(二)Python代码的编写规范四、思考与练习安装Python开发包,并练习使用pip管理扩展库编程实现教材上的示例习题1.10第二章 Python数据结构一、学习目的Pyt

10、hon中的数据结构,包括列表、元祖、字典、集合以及其他基本数据结构。本章计划6学时。二、课程内容2.1 列表列表是Python中内置可变序列,是若干元素的有序集合,列表中的每一个数据称为元素,列表的所有元素放在一对中括号“”和“”中,并使用逗号分隔开;当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙;在Python中,一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元素、字典、集合以及其他自定义类型的对象。 列表创建与删除 列表元素的增加 列表元素的删除 列表元素访问与计数 成员资格判断 切片操作 列表排序 用于序列操作的常

11、用内置函数 列表推导式2.2 元组元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可以修改其元素。元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“(”和“)”中,而不是方括号中。 元组创建与删除 元组与列表的区别 序列解包 生成器推导式2.3 字典字典是键值对的无序可变集合。定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“”和“”中。字典中的每个元素包含两部分:键和值,向字典添加一个键的同时,必须为该键增添一个值。字典中的键可以为任意不可变数据,比如整数、实数、复数、字符串、元组等等。字典中的键不允许重复。globals()返回包

12、含当前作用域内所有全局变量和值的字典locals()返回包含当前作用域内所有局部变量和值的字典 字典创建与删除 字典元素的读取 字典元素的添加与修改 字典应用案例 有序字典 字典推导式2.4 集合集合是无序可变集合,使用一对大括号界定,元素不可重复。 集合的创建与删除 集合操作 集合推导式2.5 再谈内置方法sorted()2.6 其他数据结构在Python中,除了基本序列之外,还有其他一些常用的数据结构,如堆、栈、队列、树、图等等。有些结构Python已经提供,而有些则需要自己利用基本数据结构来实现。 堆 队列 栈 链表 二叉树 有向图三、重点、难点提示(一)Python中的常见数据结构及其

13、使用差异(二)Python运算符的多重含义四、思考与练习编程实现教材上的示例习题2.3 / 2.5 / 2.9 / 2.10第三章 选择与循环一、学习目的Python中的运算符和条件表达式;选择结构和循环结构的基本使用。本章计划3学时。二、课程内容3.1 条件表达式算术运算符:+、-、*、/、/、%、*关系运算符:、=、=、!=,可以连续使用测试运算符:in、not in、is、is not逻辑运算符:and、or、not,注意短路求值位运算符:、&、|、 、 3.2 选择结构 单分支选择结构 双分支结构 多分支结构 选择结构的嵌套 选择结构应用3.3 循环结构 for循环与while循环Py

14、thon提供了两种基本的循环结构语句while语句、for语句。while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况;for循环一般用于循环次数可以提前确定的情况,尤其是用于枚举序列或迭代对象中的元素;一般优先考虑使用for循环。相同或不同的循环结构之间都可以互相嵌套,实现更为复杂的逻辑。 循环结构的优化为了优化程序以获得更高的效率和运行速度,在编写循环语句时,应尽量减少循环内部不必要的计算,将与循环变量无关的代码尽可能地提取到循环之外。对于使用多重循环嵌套的情况,应尽量减少内层循环中不必要的计算,尽可能地向外提。3.4 break和continue语句break语句

15、在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。除非break语句让代码更简单或更清晰,否则不要轻易使用。3.5 案例精选三、重点、难点提示(一)Python的关系运算符和条件表达式(二)Python中的代码缩进(三)循环代码的优化四、思考与练习编程实现教材上的示例习题3.5 / 3.7 / 3.8第四章 字符串与正则表达式一、学习目的Python中的字符串及字符串的常用方法;正则表达式的基本内容及综合运用。本章

16、计划3学时。二、课程内容4.1 字符串在Python中,字符串也属于序列类型,除了支持序列通用方法(包括分片操作)以外,还支持特有的字符串操作方法。字符串属于不可变序列类型Python字符串驻留机制:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。长字符串不遵守驻留机制。判断一个变量s是否为字符串,应使用isinstance(s,basestring)。在Python3之前,字符串有str和unicode两种,其基类都是basestring。在Python3之后合二为一了。在Python3中,程序源文件默认为UTF-8编码,全面支持中文,字符串对象不再有enc

17、ode和decode方法。 字符串格式化 字符串常用方法 字符串常量4.2 正则表达式正则表达式是字符串处理的有力工具和技术。正则表达式使用某种预定义的模式去匹配一类具有共同特征的字符串,主要用于处理字符串,可以快速、准确地完成复杂的查找、替换等处理要求。Python中,re模块提供了正则表达式操作所需要的功能。 正则表达式元字符.:匹配除换行符以外的任意单个字符*:匹配位于*之前的0个或多个字符+:匹配位于+之前的一个或多个字符|:匹配位于|之前或之后的字符:匹配行首,匹配以后面的字符开头的字符串$:匹配行尾,匹配以$之前的字符结束的字符串?:匹配位于?之前的0个或1个字符:表示位于之后的为

18、转义字符:匹配位于中的任意一个字符-:用在之内用来表示范围():将位于()内的内容作为一个整体来对待:按中的次数进行匹配b:匹配单词头或单词尾B:与b含义相反d:匹配任何数字,相当于0-9D:与d含义相反s:匹配任何空白字符S:与s含义相反w:匹配任何字母、数字以及下划线,相当于a-zA-Z0-9_W:与w含义相反 re模块主要方法compile(pattern,flags):创建模式对象search(pattern,string,flags):在字符串中寻找模式match(pattern,string,flags):从字符串的开始处匹配模式findall(pattern,string,fla

19、gs):列出字符串中模式的所有匹配项split(pattern,string,maxsplit=0):根据模式匹配项分割字符串sub(pat,repl,string,count=0):将字符串中所有pat的匹配项用repl替换escape(string):将字符串中所有特殊正则表达式字符转义 直接使用re模块方法 使用正则表达式对象 子模式与match对象 正则表达式应用案例三、重点、难点提示(一)正则表达式子模块扩展语法(二)字符串编码,字符串格式化四、思考与练习编程实现教材上的示例习题4.2 / 4.3 / 4.5第五章 函数设计与使用一、学习目的Python中函数的定义方法;参数类型;变

20、量作用域。本章计划3学时。二、课程内容5.1 函数定义def 函数名(参数列表):注释函数体5.2 形参与实参函数定义时括弧内为形参,一个函数可以没有形参,但是括弧必须要有,表示该函数不接受参数。函数调用时向其传递实参,将实参的值或引用传递给形参。在函数内直接修改形参的值不影响实参。5.3 参数类型在Python中,函数参数有很多种:可以为普通参数、默认值参数、关键参数、可变长度参数等等。Python函数的定义非常灵活,在定义函数时不需要指定参数的类型,也不需要指定函数的类型,完全由调用者决定,类似于重载和泛型;函数编写如果有问题,只有在调用时才能被发现,传递某些参数时执行正确,而传递另一些类

21、型的参数时则出现错误。 默认值参数def 函数名(形参名=默认值,) 函数体默认值参数必须出现在函数参数列表的最右端,且任何一个默认值参数右边不能有非默认值参数。调用带有默认值参数的函数时,可以不对默认值参数进行赋值,也可以赋值,具有较大的灵活性。 关键参数关键参数主要指实参,即调用函数时的参数传递方式。通过关键参数传递,实参顺序可以和形参顺序不一致,但不影响传递结果,避免了用户需要牢记位置参数顺序的麻烦。 可变长度参数可变长度参数主要有两种形式:*parameter和*parameter,前者用来接受多个实参并将其放在一个元组中,后者接受字典形式的实参。 参数传递的序列解包传递参数时,可以通

22、过在实参序列前加星号将其解包,然后传递给多个单变量形参。5.4 return语句return语句用来从一个函数中返回,即跳出函数,也可用return语句从函数中返回一个值。如果函数没有return语句,Python将认为该函数以return None结束。5.5 变量作用域变量起作用的范围称为变量的作用域。一个变量在函数外部定义和在函数内部定义,其作用域是不同的。局部变量的引用比全局变量速度快。三、重点、难点提示(一)默认值参数,关键参数,可变长度参数,参数传递时的序列解包(二)Lambda表达式四、思考与练习编程实现教材上的示例习题5.2 / 5.3 / 5.10第六章 面向对象程序设计一、

23、学习目的Python中类的定义与使用;类的方法;Python2和Python3中的类的属性。本章计划3学时。二、课程内容6.1 类的定义与使用 类定义语法Python使用class关键字来定义类,class关键字之后是一个空格,然后是类的名字,再然后是一个冒号,最后换行并定义类的内部实现。类名的首字母一般要大写,当然您也可以按照自己的习惯定义类名,但是一般推荐参考惯例来命名,并在整个系统的设计和实现中保持风格一致,这一点对于团队合作尤其重要。例如:定义了类之后,可以用来实例化对象,并通过“对象名.成员”的方式来访问其中的数据成员或成员方法,例如下面的代码:Python提供了一个关键字“pass

24、”,类似于空语句,可以用在类和函数的定义中或者选择结构中。当暂时没有确定如何实现功能,或者为以后的软件升级预留空间,或者其他类型功能时,可以使用该关键字来“占位”。 self参数类的所有实例方法都必须至少有一个名为“self”的参数,并且必须是方法的第一个形参(如果有多个形参的话),“self”参数代表将来要创建的对象本身。在类的实例方法中访问实例属性时需要以“self”为前缀,但在外部通过对象名调用对象方法时并不需要传递这个参数,如果在外部通过类名调用对象方法则需要显式为self参数传值。在Python中,在类中定义实例方法时将第一个参数定义为“self”只是一个习惯,而实际上类的实例方法中

25、第一个参数的名字是可以变化的,而不必须使用“self”这个名字。 类成员与实例成员这里主要指数据成员,或者广义上的属性。可以说属性有两种,一种是实例属性,另一种是类属性。实例属性一般是指在构造函数_init_()中定义的,定义和使用时必须以self作为前缀;类属性是在类中所有方法之外定义的数据成员。在主程序中(或类的外部),实例属性属于实例(对象),只能通过对象名访问;而类属性属于类,可以通过类名或对象名访问。在类的方法中可以调用类本身的其他方法,也可以访问类属性以及对象属性。在Python中比较特殊的是,可以动态地为类和对象增加成员,这一点是和很多面向对象程序设计语言不同的,也是Python

26、动态类型特点的一种重要体现。 私有成员与公有成员Python并没有对私有成员提供严格的访问保护机制。在定义类的属性时,如果属性名以两个下划线“_”开头则表示是私有属性,否则是公有属性。私有属性在类的外部不能直接访问,需要通过调用对象的公有成员方法来访问,或者通过Python支持的特殊方式来访问。Python提供了访问私有属性的特殊方式,可用于程序的测试和调试,对于成员方法也具有同样的性质。私有属性是为了数据封装和保密而设的属性,一般只能在类的成员方法(类的内部)中使用访问,虽然Python支持一种特殊的方式来从外部直接访问类的私有成员,但是并不推荐您这样做。公有属性是可以公开使用的,既可以在类

27、的内部进行访问,也可以在外部程序中使用。在Python中,以下划线开头的变量名和方法名有特殊的含义,尤其是在类的定义中。用下划线作为变量名和方法名前缀和后缀来表示类的特殊成员:_xxx:这样的对象叫做保护成员,不能用from module import *导入,只有类对象和子类对象能访问这些成员;_xxx_:系统定义的特殊成员;_xxx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名._类名_xxx”这样的特殊方式来访问。Python中不存在严格意义上的私有成员。6.2 方法在类中定义的方法可以粗略分为四大类:公有方法、私有方法、静态方法和类方

28、法。其中,公有方法、私有方法都属于对象,私有方法的名字以两个下划线“_”开始,每个对象都有自己的公有方法和私有方法,在这两类方法中可以访问属于类和对象的成员;公有方法通过对象名直接调用,私有方法不能通过对象名直接调用,只能在属于对象的方法中通过“self”调用或在外部通过Python支持的特殊方式来调用。如果通过类名来调用属于对象的公有方法,需要显式为该方法的“self”参数传递一个对象名,用来明确指定访问哪个对象的数据成员。静态方法和类方法都可以通过类名和对象名调用,但不能直接访问属于对象的成员,只能访问属于类的成员。一般将“cls”作为类方法的第一个参数名称,但也可以使用其他的名字作为参数

29、,并且在调用类方法时不需要为该参数传递值。6.3 属性Python 2.x和Python 3.x对属性的实现和处理方式不一样,内部实现有较大的差异,使用时应注意二者之间的区别。 Python 2.x中的属性 Python 3.x中的属性在Python 3.x中,属性得到了较为完整的实现,支持更加全面的保护机制。例如下面的代码所示,如果设置属性为只读,则无法修改其值,也无法为对象增加与属性同名的新成员,同时,也无法删除对象属性。6.4 常用特殊方法Python类有大量的特殊方法,其中比较常见的是构造函数和析构函数。Python中类的构造函数是_init_(),一般用来为数据成员设置初值或进行其他

30、必要的初始化工作,在创建对象时被自动调用和执行,可以通过为构造函数定义默认值参数来实现类似于其他语言中构造函数重载的目的。如果用户没有设计构造函数,Python将提供一个默认的构造函数用来进行必要的初始化工作。Python中类的析构函数是_del_(),一般用来释放对象占用的资源,在Python删除对象和收回对象空间时被自动调用和执行。如果用户没有编写析构函数,Python将提供一个默认的析构函数进行必要的清理工作。6.5 继承机制继承是为代码复用和设计复用而设计的,是面向对象程序设计的重要特性之一。当我们设计一个新类时,如果可以继承一个已有的设计良好的类然后进行二次开发,无疑会大幅度减少开发工作量。在继承关系中,已有的、设计好的类称为父类或基类,新设计的类称

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1