1、 Python 程序设计 教学大纲 安徽大学 计算机科学与技术 学院 2015 年 10 月 课程性质与设置目的要求 ( 前言 ) Python 程序设计 课程是 计算机科学与技术学院各专业的 专业选修 课程。Python 是一门开源的高级动态编程语言,支持命令式编程、函数式编程、面向对象程序 设计,语法简洁清晰,并且拥有大量功能丰富而强大的标准库和扩展库 。本课程将从 Python 语言的实现机制入手,结合示例程序和上机实验,较为系统地介绍 Python 语言的主要特征和编程技术。 设置本课程的目的是: 使学习者在全面了解 Python 技术历史、现状与发展趋势的基础上,系统掌握 Pytho
2、n 基本概念、编程思想以及程序设计技术,具备熟练的 Python 编程技能和面向对象软件设计技术思想,完成本课程的学习后能够熟练地综合应用 Python 技术和面向对象的思想编写程序解决现实生活中的问题,最终提高程序设计水平和计算机应用能力,从而能胜任企业软件研发以及科研院所的研发、教学任务。 学习本课程的要求是:学习者应 理解 Python 的编程模式,熟练运用 Python列表、元组、字 典、集合等基本数据类型以及相关列表推导式、切片等特性来解决实际问题,熟练掌握 Python 分支结构、循环结构、函数设计以及类的设计与使用,熟练使用正则表达式处理字符串,同时掌握不同领域的 Python
3、扩展模块 ,并能够解决实际问题 。 先修课程要求: 无 本课程计划 34 学时, 2 学分。 选用教材: 董付国 . Python 程序设计 (第 2 版 ).北京:清华大学出版社, 2016.5. 考核方法: 考查 教学进程安排表: 周 次 学 时 数 教 学 主 要 内 容 教学 环节 备 注 1 3 Python 的安装与使用 Python 扩展库的管理 Python 中的数据类型 讲课 2 3 Python 中的内置函数、基本输入输出 Python 代码编写规范 Python 文件名和程序运行 讲课 3 3 Python 中的列表使用 讲课 4 3 Python 中的 元组、 字典 及
4、集合的 使用 讲课 5 3 选择和循环结构 讲课 6 3 字符串和正则表达式 讲课 7 3 函数的设计与使用 讲课 8 3 类的定义与使用 类的方法和属性 讲课 9 3 文本文件的基本操作 二进制文件操作 文件操作 和目录操作 讲课 10 3 异常处理结构与程序调试 GUI 编程 讲课 11 3+1 网络程序设计 多线程编程 课程随堂测试 讲课 +测试 第一章 基础知识 一、学习目的 Python 语言的发展过程、安装及简单使用; Python 程序设计中的基本知识; Python代码的编写规范; Python 文件名的要求; Python 程序的运行方式;编写自己的包以及基本示例 。本章 计
5、划 6学时。 二、课程内容 1.0 Python 是一种怎样的语言 Python是一门跨平台、开源、免费的解释型高级动态编程语言,同 时也支持伪编译将 Python源程序转换为字节码来优化程序和提高运行速度。 Python支持命令式编程、函数式编程,完全支持面向对象程序设计,语法简洁清晰,并且拥有大量的几乎支持所有领域应用开发的成熟扩展库。 1.1 如何选择 Python版本 多版本共存与切换简便方法:更改系统环境变量 path 查看已安装版本的方法 有时候可能需要同时安装多个不同的版本,并根据不同的开发需求在两个版本之间进行切换。 1.2 Python 安装与简单使用 默认编程环境: IDL
6、E 1.3 使用 pip 管理第三方包 Python2中需要 单独安装 下载地址: https:/pypi.python.org/pypi/pip 安装方法: cmd=python get-pip.py 用法示例 Python3安装包中已默认包含 pip 1.4.1 Python 的对象模型 对象是 python语言中最基本的概念,在 python中处理的每样东西都是对象。 python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、 del等;非内置对象需要导入模块才能使用,如正弦函数 sin(x),随机数产生函数 random( )等。 常用内置对象 1.4.2
7、Python 变量 在 Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量。 虽然不需要在使用之前显式地声明变量及其类型,但是 Python仍属于强类型编程语言。 Python还是一种动态类型语言 Python采用的是基于值的内存管理方式 Python具有自动内存管理功能 在定义变量名的时候,需要注意的问题。 1.4.3 数字 数字是 python中最常用的对象,属于不可变对象。 可以表示任意大小的数字。 1.4.4 字符串 用单引号、双引号或三引号括起来的符号系列称为 字符串 单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。 1. 字符串合并
8、 2. 字符串格式化 3. 转义字符 1.4.5 操作符和表达式 Python中很多运算符有多重含义,在程序中运算符的具体含义取决于操作数的类型。 在 Python中,单个任何类型的对象或常数属于合法表达式。 1.4.6 常用内置函数 内置函数不需要导入任何模块即可使用 执行下面的命令可以列出所有内置函数 dir(_builtins_) 1.4.7 对象的删除 在 Python中具有自动内存管理功能。 可以使用 del命令来显式删除对象并解除与值之间的指向关系。 1.4.8 基本输入输出 用 Python进行程序设计,输入是通过 input( )函数来实现的。 尽管形式一样, Python 2
9、.x 和 Python 3.x 对该函数的解释略有不同。 1.4.9 模块的使用 Python默认安装仅包含部分基本或核心模块,但用户可以安装大量的扩展模块, pip是管理模块的重要工具 import 模块名 1.5 Python 代码规范 ( 1)缩进 ( 2)注释 ( 3)每个 import只导入一个模块 ( 4)如果一行语句太长,可 以在行尾加上 来换行分成多行,但是更建议使用括号来包含多行内容。 ( 5)必要的空格与空行 ( 6)适当使用异常处理结构进行容错,后面将详细讲解。 ( 7)软件应具有较强的可测试性,测试与开发齐头并进。 1.6 Python 文件名 1.7 Python 脚
10、本的“ _name_”属性 1.8 编写自己的包与模块 包可以看做处于同一目录中的模块。 1.9 Python 快速入门 问题 1:用户输入一个三位自然数,计算并输出其佰位、十位和个位上的数字。 问题 2:已知三角形的两边长及其夹角,求第三边长。 问题 3:任意输入三个 英文单词,按字典顺序输出。 三、重点、难点提示 (一) Python中的对象 (二) Python代码的编写规范 四、思考与练习 安装 Python 开发包 ,并 练习使用 pip 管理扩展库 编程实现教材上的示例 习题 1.10 第二章 Python数据结构 一、学习目的 Python 中的数据结构,包括列表、元祖、字典、集
11、合以及其他基本数据结构 。 本章计划 6 学时。 二、课程内容 2.1 列表 列表是 Python中内置可变序列,是若干元素的有序集合,列表中的每一个数据称为元素,列表的所有元素放在一对中括号“ ”和“ ”中 ,并使用逗号分隔开; 当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙; 在 Python 中,一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元素、字典、集合以及其他自定义类型的对象。 列表创建与删除 列表元素的增加 列表元素的删除 列表元素访问与计数 成员资格判断 切片操作 列表排序 用于序列操作的常用内置函数 列
12、表推导式 2.2 元组 元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可以修改其元素。 元组的定义方式和列表相 同,但定义时所有元素是放在一对圆括号“(”和“)”中,而不是方括号中。 元组创建与删除 元组与列表的区别 序列解包 生成器推导式 2.3 字典 字典是键值对的无序可变集合。 定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“”和“”中。 字典中的每个元素包含两部分:键和值,向字典添加一个键的同时,必须为该键增添一个值。 字典中的键可以为任意不可变数据,比如整数、实数、复数、字符串、元组等等。 字典中的键不允许重复。 globals(
13、)返回包含当前作用域内所有全局变量和 值的字典 locals()返回包含当前作用域内所有局部变量和值的字典 字典创建与删除 字典元素的读取 字典元素的添加与修改 字典应用案例 有序字典 字典推导式 2.4 集合 集合是无序可变集合,使用一对大括号界定,元素不可重复。 集合的创建与删除 集合操作 集合推导式 2.5 再谈内置方法 sorted() 2.6 其他数据结构 在 Python中,除了基本序列之外,还有其他一些常用的数据结构,如堆、栈、队列、树、图等等。有些结构 Python已经提供,而有些则需要自己利用基本数据结构来实现。 堆 队列 栈 链表 二叉树 有向图 三、重点、难点提示 (一)
14、 Python中的 常见数据 结构 及其使用差异 (二) Python运算符的多重含义 四、思考与练习 编程实现教材上的示例 习题 2.3 / 2.5 / 2.9 / 2.10 第 三 章 选择与循环 一、学习目的 Python 中的运算符和条件表达式;选择结构和循环结构的基本使用 。本章计划 3 学时。 二、课程内容 3.1 条件表达式 算术运算符: +、 -、 *、 /、 /、 %、 * 关系运算符: 、 =、 !=,可以连续使用 测试运算符: in、 not in、 is、 is not 逻辑运算符: and、 or、 not,注意短路求值 位运算符: 、 &、 |、 、 3.2 选择结
15、构 单分支选择结构 双分支结构 多分支结构 选择结构的嵌套 选择结构应用 3.3 循环结构 for 循环与 while循环 Python提供了两种基本的循环结构语句 while语句、 for语句。 while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况; for 循环一般用于循环次数可以提前确定的情况,尤其是用于枚举序列或迭代对象中的元素; 一般优先考虑使用 for循环。 相同或不 同的循环结构之间都可以互相嵌套,实现更为复杂的逻辑。 循环结构的优化 为了优化程序以获得更高的效率和运行速度,在编写循环语句时,应尽量减少循环内部不必要的计算,将与循环变量无关的代码尽可能地提取到循环之外。对于使用多重循环嵌套的情况,应尽量减少内层循环中不必要的计算,尽可能地向外提。 3.4 break 和 continue语句 break 语句在 while 循环和 for循环中都可以使用,一般放在 if 选择结构中,一旦break语句被执行,将使得整个循环提前结束。 continue语句的作用是终止当前循环,并忽略 continue之后的语句,然后回到循环的顶端,提前进入下一次循环。 除非 break语句让代码更简单或更清晰,否则不要轻易使用。 3.5 案例精选 三、重点、难点提示 (一) Python的关系运算符和条件表达式 (二) Python中的代码缩进