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

上传人:b****1 文档编号:2659697 上传时间:2023-05-04 格式:DOCX 页数:32 大小:32.16KB
下载 相关 举报
Python程序设计教学大纲段震.docx_第1页
第1页 / 共32页
Python程序设计教学大纲段震.docx_第2页
第2页 / 共32页
Python程序设计教学大纲段震.docx_第3页
第3页 / 共32页
Python程序设计教学大纲段震.docx_第4页
第4页 / 共32页
Python程序设计教学大纲段震.docx_第5页
第5页 / 共32页
Python程序设计教学大纲段震.docx_第6页
第6页 / 共32页
Python程序设计教学大纲段震.docx_第7页
第7页 / 共32页
Python程序设计教学大纲段震.docx_第8页
第8页 / 共32页
Python程序设计教学大纲段震.docx_第9页
第9页 / 共32页
Python程序设计教学大纲段震.docx_第10页
第10页 / 共32页
Python程序设计教学大纲段震.docx_第11页
第11页 / 共32页
Python程序设计教学大纲段震.docx_第12页
第12页 / 共32页
Python程序设计教学大纲段震.docx_第13页
第13页 / 共32页
Python程序设计教学大纲段震.docx_第14页
第14页 / 共32页
Python程序设计教学大纲段震.docx_第15页
第15页 / 共32页
Python程序设计教学大纲段震.docx_第16页
第16页 / 共32页
Python程序设计教学大纲段震.docx_第17页
第17页 / 共32页
Python程序设计教学大纲段震.docx_第18页
第18页 / 共32页
Python程序设计教学大纲段震.docx_第19页
第19页 / 共32页
Python程序设计教学大纲段震.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《Python程序设计教学大纲段震.docx》由会员分享,可在线阅读,更多相关《Python程序设计教学大纲段震.docx(32页珍藏版)》请在冰点文库上搜索。

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

Python程序设计教学大纲段震

《Python程序设计》教学大纲

 

安徽大学计算机科学与技术学院

2015年10月

课程性质与设置目的要求(前言)

《Python程序设计》课程是计算机科学与技术学院各专业的专业选修课程。

Python是一门开源的高级动态编程语言,支持命令式编程、函数式编程、面向对象程序设计,语法简洁清晰,并且拥有大量功能丰富而强大的标准库和扩展库。

本课程将从Python语言的实现机制入手,结合示例程序和上机实验,较为系统地介绍Python语言的主要特征和编程技术。

设置本课程的目的是:

使学习者在全面了解Python技术历史、现状与发展趋势的基础上,系统掌握Python基本概念、编程思想以及程序设计技术,具备熟练的Python编程技能和面向对象软件设计技术思想,完成本课程的学习后能够熟练地综合应用Python技术和面向对象的思想编写程序解决现实生活中的问题,最终提高程序设计水平和计算机应用能力,从而能胜任企业软件研发以及科研院所的研发、教学任务。

学习本课程的要求是:

学习者应理解Python的编程模式,熟练运用Python列表、元组、字典、集合等基本数据类型以及相关列表推导式、切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用正则表达式处理字符串,同时掌握不同领域的Python扩展模块,并能够解决实际问题。

先修课程要求:

本课程计划34学时,2学分。

选用教材:

董付国.Python程序设计(第2版).北京:

清华大学出版社,2016.5.

考核方法:

考查

 

教学进程安排表:

教学主要内容

教学

环节

1

3

Python的安装与使用

Python扩展库的管理

Python中的数据类型

讲课

2

3

Python中的内置函数、基本输入输出

Python代码编写规范

Python文件名和程序运行

讲课

3

3

Python中的列表使用

讲课

4

3

Python中的元组、字典及集合的使用

讲课

5

3

选择和循环结构

讲课

6

3

字符串和正则表达式

讲课

7

3

函数的设计与使用

讲课

8

3

类的定义与使用

类的方法和属性

讲课

9

3

文本文件的基本操作

二进制文件操作

文件操作和目录操作

讲课

10

3

异常处理结构与程序调试

GUI编程

讲课

11

3+1

网络程序设计

多线程编程

课程随堂测试

讲课+测试

 

第一章基础知识

一、学习目的

Python语言的发展过程、安装及简单使用;Python程序设计中的基本知识;Python代码的编写规范;Python文件名的要求;Python程序的运行方式;编写自己的包以及基本示例。

本章计划6学时。

二、课程内容

1.0Python是一种怎样的语言

Python是一门跨平台、开源、免费的解释型高级动态编程语言,同时也支持伪编译将Python源程序转换为字节码来优化程序和提高运行速度。

Python支持命令式编程、函数式编程,完全支持面向对象程序设计,语法简洁清晰,并且拥有大量的几乎支持所有领域应用开发的成熟扩展库。

1.1如何选择Python版本

多版本共存与切换简便方法:

更改系统环境变量path

查看已安装版本的方法

有时候可能需要同时安装多个不同的版本,并根据不同的开发需求在两个版本之间进行切换。

1.2Python安装与简单使用

默认编程环境:

IDLE

1.3使用pip管理第三方包

Python2中需要单独安装

下载地址:

https:

//pypi.python.org/pypi/pip

安装方法:

cmd==>pythonget-pip.py

用法示例

Python3安装包中已默认包含pip

1.4.1Python的对象模型

对象是python语言中最基本的概念,在python中处理的每样东西都是对象。

python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random()等。

常用内置对象

1.4.2Python变量

在Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量。

虽然不需要在使用之前显式地声明变量及其类型,但是Python仍属于强类型编程语言。

Python还是一种动态类型语言

Python采用的是基于值的内存管理方式

Python具有自动内存管理功能

在定义变量名的时候,需要注意的问题。

1.4.3数字

数字是python中最常用的对象,属于不可变对象。

可以表示任意大小的数字。

1.4.4字符串

用单引号、双引号或三引号括起来的符号系列称为字符串

单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。

1.字符串合并

2.字符串格式化

3.转义字符

1.4.5操作符和表达式

Python中很多运算符有多重含义,在程序中运算符的具体含义取决于操作数的类型。

在Python中,单个任何类型的对象或常数属于合法表达式。

1.4.6常用内置函数

内置函数不需要导入任何模块即可使用

执行下面的命令可以列出所有内置函数

>>>dir(__builtins__)

1.4.7对象的删除

在Python中具有自动内存管理功能。

可以使用del命令来显式删除对象并解除与值之间的指向关系。

1.4.8基本输入输出

用Python进行程序设计,输入是通过input()函数来实现的。

尽管形式一样,Python2.x和Python3.x对该函数的解释略有不同。

1.4.9模块的使用

Python默认安装仅包含部分基本或核心模块,但用户可以安装大量的扩展模块,pip是管理模块的重要工具

import模块名

1.5Python代码规范

(1)缩进

(2)注释

(3)每个import只导入一个模块

(4)如果一行语句太长,可以在行尾加上\来换行分成多行,但是更建议使用括号来包含多行内容。

(5)必要的空格与空行

(6)适当使用异常处理结构进行容错,后面将详细讲解。

(7)软件应具有较强的可测试性,测试与开发齐头并进。

1.6Python文件名

1.7Python脚本的“__name__”属性

1.8编写自己的包与模块

包可以看做处于同一目录中的模块。

1.9Python快速入门

问题1:

用户输入一个三位自然数,计算并输出其佰位、十位和个位上的数字。

问题2:

已知三角形的两边长及其夹角,求第三边长。

问题3:

任意输入三个英文单词,按字典顺序输出。

三、重点、难点提示

(一)Python中的对象

(二)Python代码的编写规范

四、思考与练习

安装Python开发包,并练习使用pip管理扩展库

编程实现教材上的示例

习题1.10

第二章Python数据结构

一、学习目的

Python中的数据结构,包括列表、元祖、字典、集合以及其他基本数据结构。

本章计划6学时。

二、课程内容

2.1列表

列表是Python中内置可变序列,是若干元素的有序集合,列表中的每一个数据称为元素,列表的所有元素放在一对中括号“[”和“]”中,并使用逗号分隔开;

当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙;

在Python中,一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元素、字典、集合以及其他自定义类型的对象。

●列表创建与删除

●列表元素的增加

●列表元素的删除

●列表元素访问与计数

●成员资格判断

●切片操作

●列表排序

●用于序列操作的常用内置函数

●列表推导式

2.2元组

元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可以修改其元素。

元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“(”和“)”中,而不是方括号中。

●元组创建与删除

●元组与列表的区别

●序列解包

●生成器推导式

2.3字典

字典是键值对的无序可变集合。

定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“{”和“}”中。

字典中的每个元素包含两部分:

键和值,向字典添加一个键的同时,必须为该键增添一个值。

字典中的键可以为任意不可变数据,比如整数、实数、复数、字符串、元组等等。

字典中的键不允许重复。

globals()返回包含当前作用域内所有全局变量和值的字典

locals()返回包含当前作用域内所有局部变量和值的字典

●字典创建与删除

●字典元素的读取

●字典元素的添加与修改

●字典应用案例

●有序字典

●字典推导式

2.4集合

集合是无序可变集合,使用一对大括号界定,元素不可重复。

●集合的创建与删除

●集合操作

●集合推导式

2.5再谈内置方法sorted()

2.6其他数据结构

在Python中,除了基本序列之外,还有其他一些常用的数据结构,如堆、栈、队列、树、图等等。

有些结构Python已经提供,而有些则需要自己利用基本数据结构来实现。

●堆

●队列

●栈

●链表

●二叉树

●有向图

三、重点、难点提示

(一)Python中的常见数据结构及其使用差异

(二)Python运算符的多重含义

四、思考与练习

编程实现教材上的示例

习题2.3/2.5/2.9/2.10

第三章选择与循环

一、学习目的

Python中的运算符和条件表达式;选择结构和循环结构的基本使用。

本章计划3学时。

二、课程内容

3.1条件表达式

算术运算符:

+、-、*、/、//、%、**

关系运算符:

>、<、==、<=、>=、!

=,可以连续使用

测试运算符:

in、notin、is、isnot

逻辑运算符:

and、or、not,注意短路求值

位运算符:

~、&、|、^、<<、>>

3.2选择结构

●单分支选择结构

●双分支结构

●多分支结构

●选择结构的嵌套

●选择结构应用

3.3循环结构

●for循环与while循环

Python提供了两种基本的循环结构语句——while语句、for语句。

while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况;

for循环一般用于循环次数可以提前确定的情况,尤其是用于枚举序列或迭代对象中的元素;

一般优先考虑使用for循环。

相同或不同的循环结构之间都可以互相嵌套,实现更为复杂的逻辑。

●循环结构的优化

为了优化程序以获得更高的效率和运行速度,在编写循环语句时,应尽量减少循环内部不必要的计算,将与循环变量无关的代码尽可能地提取到循环之外。

对于使用多重循环嵌套的情况,应尽量减少内层循环中不必要的计算,尽可能地向外提。

3.4break和continue语句

break语句在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。

continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。

除非break语句让代码更简单或更清晰,否则不要轻易使用。

3.5案例精选

三、重点、难点提示

(一)Python的关系运算符和条件表达式

(二)Python中的代码缩进

(三)循环代码的优化

四、思考与练习

编程实现教材上的示例

习题3.5/3.7/3.8

第四章字符串与正则表达式

一、学习目的

Python中的字符串及字符串的常用方法;正则表达式的基本内容及综合运用。

本章计划3学时。

二、课程内容

4.1字符串

在Python中,字符串也属于序列类型,除了支持序列通用方法(包括分片操作)以外,还支持特有的字符串操作方法。

字符串属于不可变序列类型

Python字符串驻留机制:

对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。

长字符串不遵守驻留机制。

判断一个变量s是否为字符串,应使用isinstance(s,basestring)。

在Python3之前,字符串有str和unicode两种,其基类都是basestring。

在Python3之后合二为一了。

在Python3中,程序源文件默认为UTF-8编码,全面支持中文,字符串对象不再有encode和decode方法。

●字符串格式化

●字符串常用方法

●字符串常量

4.2正则表达式

正则表达式是字符串处理的有力工具和技术。

正则表达式使用某种预定义的模式去匹配一类具有共同特征的字符串,主要用于处理字符串,可以快速、准确地完成复杂的查找、替换等处理要求。

Python中,re模块提供了正则表达式操作所需要的功能。

●正则表达式元字符

.:

匹配除换行符以外的任意单个字符

*:

匹配位于*之前的0个或多个字符

+:

匹配位于+之前的一个或多个字符

|:

匹配位于|之前或之后的字符

^:

匹配行首,匹配以^后面的字符开头的字符串

$:

匹配行尾,匹配以$之前的字符结束的字符串

?

匹配位于?

之前的0个或1个字符

\:

表示位于\之后的为转义字符

[]:

匹配位于[]中的任意一个字符

-:

用在[]之内用来表示范围

():

将位于()内的内容作为一个整体来对待

{}:

按{}中的次数进行匹配

\b:

匹配单词头或单词尾

\B:

与\b含义相反

\d:

匹配任何数字,相当于[0-9]

\D:

与\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[,flags]):

列出字符串中模式的所有匹配项

split(pattern,string[,maxsplit=0]):

根据模式匹配项分割字符串

sub(pat,repl,string[,count=0]):

将字符串中所有pat的匹配项用repl替换

escape(string):

将字符串中所有特殊正则表达式字符转义

●直接使用re模块方法

●使用正则表达式对象

●子模式与match对象

●正则表达式应用案例

三、重点、难点提示

(一)正则表达式子模块扩展语法

(二)字符串编码,字符串格式化

四、思考与练习

编程实现教材上的示例

习题4.2/4.3/4.5

第五章函数设计与使用

一、学习目的

Python中函数的定义方法;参数类型;变量作用域。

本章计划3学时。

二、课程内容

5.1函数定义

def函数名([参数列表]):

'''注释'''

函数体

5.2形参与实参

函数定义时括弧内为形参,一个函数可以没有形参,但是括弧必须要有,表示该函数不接受参数。

函数调用时向其传递实参,将实参的值或引用传递给形参。

在函数内直接修改形参的值不影响实参。

5.3参数类型

在Python中,函数参数有很多种:

可以为普通参数、默认值参数、关键参数、可变长度参数等等。

Python函数的定义非常灵活,在定义函数时不需要指定参数的类型,也不需要指定函数的类型,完全由调用者决定,类似于重载和泛型;

函数编写如果有问题,只有在调用时才能被发现,传递某些参数时执行正确,而传递另一些类型的参数时则出现错误。

●默认值参数

def函数名(形参名=默认值,……)

函数体

默认值参数必须出现在函数参数列表的最右端,且任何一个默认值参数右边不能有非默认值参数。

调用带有默认值参数的函数时,可以不对默认值参数进行赋值,也可以赋值,具有较大的灵活性。

●关键参数

关键参数主要指实参,即调用函数时的参数传递方式。

通过关键参数传递,实参顺序可以和形参顺序不一致,但不影响传递结果,避免了用户需要牢记位置参数顺序的麻烦。

●可变长度参数

可变长度参数主要有两种形式:

*parameter和**parameter,前者用来接受多个实参并将其放在一个元组中,后者接受字典形式的实参。

●参数传递的序列解包

传递参数时,可以通过在实参序列前加星号将其解包,然后传递给多个单变量形参。

5.4return语句

return语句用来从一个函数中返回,即跳出函数,也可用return语句从函数中返回一个值。

如果函数没有return语句,Python将认为该函数以returnNone结束。

5.5变量作用域

变量起作用的范围称为变量的作用域。

一个变量在函数外部定义和在函数内部定义,其作用域是不同的。

局部变量的引用比全局变量速度快。

三、重点、难点提示

(一)默认值参数,关键参数,可变长度参数,参数传递时的序列解包

(二)Lambda表达式

四、思考与练习

编程实现教材上的示例

习题5.2/5.3/5.10

第六章面向对象程序设计

一、学习目的

Python中类的定义与使用;类的方法;Python2和Python3中的类的属性。

本章计划3学时。

二、课程内容

6.1类的定义与使用

●类定义语法

Python使用class关键字来定义类,class关键字之后是一个空格,然后是类的名字,再然后是一个冒号,最后换行并定义类的内部实现。

类名的首字母一般要大写,当然您也可以按照自己的习惯定义类名,但是一般推荐参考惯例来命名,并在整个系统的设计和实现中保持风格一致,这一点对于团队合作尤其重要。

例如:

定义了类之后,可以用来实例化对象,并通过“对象名.成员”的方式来访问其中的数据成员或成员方法,例如下面的代码:

Python提供了一个关键字“pass”,类似于空语句,可以用在类和函数的定义中或者选择结构中。

当暂时没有确定如何实现功能,或者为以后的软件升级预留空间,或者其他类型功能时,可以使用该关键字来“占位”。

●self参数

类的所有实例方法都必须至少有一个名为“self”的参数,并且必须是方法的第一个形参(如果有多个形参的话),“self”参数代表将来要创建的对象本身。

在类的实例方法中访问实例属性时需要以“self”为前缀,但在外部通过对象名调用对象方法时并不需要传递这个参数,如果在外部通过类名调用对象方法则需要显式为self参数传值。

在Python中,在类中定义实例方法时将第一个参数定义为“self”只是一个习惯,而实际上类的实例方法中第一个参数的名字是可以变化的,而不必须使用“self”这个名字。

●类成员与实例成员

这里主要指数据成员,或者广义上的属性。

可以说属性有两种,一种是实例属性,另一种是类属性。

实例属性一般是指在构造函数__init__()中定义的,定义和使用时必须以self作为前缀;类属性是在类中所有方法之外定义的数据成员。

在主程序中(或类的外部),实例属性属于实例(对象),只能通过对象名访问;而类属性属于类,可以通过类名或对象名访问。

在类的方法中可以调用类本身的其他方法,也可以访问类属性以及对象属性。

在Python中比较特殊的是,可以动态地为类和对象增加成员,这一点是和很多面向对象程序设计语言不同的,也是Python动态类型特点的一种重要体现。

●私有成员与公有成员

Python并没有对私有成员提供严格的访问保护机制。

在定义类的属性时,如果属性名以两个下划线“__”开头则表示是私有属性,否则是公有属性。

私有属性在类的外部不能直接访问,需要通过调用对象的公有成员方法来访问,或者通过Python支持的特殊方式来访问。

Python提供了访问私有属性的特殊方式,可用于程序的测试和调试,对于成员方法也具有同样的性质。

私有属性是为了数据封装和保密而设的属性,一般只能在类的成员方法(类的内部)中使用访问,虽然Python支持一种特殊的方式来从外部直接访问类的私有成员,但是并不推荐您这样做。

公有属性是可以公开使用的,既可以在类的内部进行访问,也可以在外部程序中使用。

在Python中,以下划线开头的变量名和方法名有特殊的含义,尤其是在类的定义中。

用下划线作为变量名和方法名前缀和后缀来表示类的特殊成员:

_xxx:

这样的对象叫做保护成员,不能用'frommoduleimport*'导入,只有类对象和子类对象能访问这些成员;

__xxx__:

系统定义的特殊成员;

__xxx:

类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。

Python中不存在严格意义上的私有成员。

6.2方法

在类中定义的方法可以粗略分为四大类:

公有方法、私有方法、静态方法和类方法。

其中,公有方法、私有方法都属于对象,私有方法的名字以两个下划线“__”开始,每个对象都有自己的公有方法和私有方法,在这两类方法中可以访问属于类和对象的成员;公有方法通过对象名直接调用,私有方法不能通过对象名直接调用,只能在属于对象的方法中通过“self”调用或在外部通过Python支持的特殊方式来调用。

如果通过类名来调用属于对象的公有方法,需要显式为该方法的“self”参数传递一个对象名,用来明确指定访问哪个对象的数据成员。

静态方法和类方法都可以通过类名和对象名调用,但不能直接访问属于对象的成员,只能访问属于类的成员。

一般将“cls”作为类方法的第一个参数名称,但也可以使用其他的名字作为参数,并且在调用类方法时不需要为该参数传递值。

6.3属性

Python2.x和Python3.x对属性的实现和处理方式不一样,内部实现有较大的差异,使用时应注意二者之间的区别。

●Python2.x中的属性

●Python3.x中的属性

在Python3.x中,属性得到了较为完整的实现,支持更加全面的保护机制。

例如下面的代码所示,如果设置属性为只读,则无法修改其值,也无法为对象增加与属性同名的新成员,同时,也无法删除对象属性。

6.4常用特殊方法

Python类有大量的特殊方法,其中比较常见的是构造函数和析构函数。

Python中类的构造函数是__init__(),一般用来为数据成员设置初值或进行其他必要的初始化工作,在创建对象时被自动调用和执行,可以通过为构造函数定义默认值参数来实现类似于其他语言中构造函数重载的目的。

如果用户没有设计构造函数,Python将提供一个默认的构造函数用来进行必要的初始化工作。

Python中类的析构函数是__del__(),一般用来释放对象占用的资源,在Python删除对象和收回对象空间时被自动调用和执行。

如果用户没有编写析构函数,Python将提供一个默认的析构函数进行必要的清理工作。

6.5继承机制

继承是为代码复用和设计复用而设计的,是面向对象程序设计的重要特性之一。

当我们设计一个新类时,如果可以继承一个已有的设计良好的类然后进行二次开发,无疑会大幅度减少开发工作量。

在继承关系中,已有的、设计好的类称为父类或基类,新设计的类称

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2