《Python程序设计基础(第2版)》教学大纲(参考)
- 格式:doc
- 大小:84.00 KB
- 文档页数:13
《Python程序设计基础》
教 学 大 纲
院(系、部):
教研室:
日 期: 2018年3月20日
目 录
一、 课程简介 .................................................................................................................................. 1
二、 教学目的和要求 ...................................................................................................................... 1
三、 教学中应注意的问题............................................................................................................... 1
四、 教学内容 .................................................................................................................................. 2
五、 教学课时分配 .......................................................................................................................... 9
六、 教材与参考书目 .................................................................................................................... 10
1 一、 课程简介
课程名称:Python程序设计基础 课程编号:
课程性质:必修 适用专业:非计算机专业
前导课程:无 考核方式:考试
建议学时:48+16
二、 教学目的和要求
通过本课程的学习,使得学生能够理解Python的编程模式,熟练运用Python列表、元组、字典、集合等基本数据类型以及相关列表推导式、切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用正则表达式处理字符串,熟练使用Python读写文本文件与二进制文件,了解Python程序的调试方法,熟练运用Python编写面向对象程序,掌握使用Python操作SQLite数据库的方法,掌握Python+pandas进行数据处理的基本用法,掌握使用Python+matplotlib进行数据可视化的用法,同时还应培养学生的代码优化与安全编程意识。
三、 教学中应注意的问题
Python编程模式中非常重要的一条是代码简单化、问题简单化,同时应保证代码具有较强的可读性。在教学过程中,尽量避免在Python程序中带有其他编程语言的痕迹,要尽量从最简单的角度去思考和解决问题、实现自己的想法和思路,尽量多使用Python内置函数、标准库对象和合适的扩展库对象,保证代码的优雅、简洁,让代码更加Pythonic。
使用Python编程解决问题应充分借鉴和使用成熟的标准库和扩展库,尽量避免自主编写完整的业务逻辑,部分具体操作完全可以使用扩展库来实现,大幅度提高开发效率。例如:如果需要进行排序则直接使用内置函数或方法进行排序,切不可再使用选择法排序、冒泡法排序或堆排序等排序算法来编写代码实现;计算最大公约数应习惯于使用math标准库的gcd()函数;对数据进行随机乱序应使用random标准库中的shuffle()函数;从给定数据集中随机选择元素应使用random标准库中的choice()函数;等等。 2 四、 教学内容
第1章 Python概述
1.1 Python是这样一种语言
教学重点:Python的命令式编程和函数式编程。
1.2 Python版本之争
教学重点:如何选择正确的Python版本,系统环境变量的设置。
1.3 Python编程规范与代码优化建议
教学重点:缩进,空格与空行,不同数据类型的选择对程序运行效率的影响。
1.4 Anaconda3开发环境的安装与使用
1.5 安装扩展库的几种方法
教学重点:熟练使用pip安装和惯例Python扩展库。
1.6 标准库与扩展库中对象的导入与使用
教学重点:三种导入方法之间的区别。
1.7 __name__属性的作用
教学重点:不同方式使用Python程序时__name__属性的值。
第2章 运算符、表达式与内置对象
2.1 Python常用内置对象
教学重点:不需要事先声明变量名及其类型,变量命名规范,数字、字符串、列表、元组、字典、集合的简单使用,数字大小无限制。
2.2 Python运算符与表达式
教学重点:同一个运算有不同含义,关系运算符和逻辑运算符的惰性求值特点。
2.3 Python关键字简要说明
2.4 Python常用内置函数用法精要 3 教学重点:很多函数有基本用法和高级用法,注意这些函数的可选参数;理解函数式编程的模式。
教学难点:函数式编程。
2.5 精彩案例赏析
第3章 Python数据结构
3.1 列表
教学重点:列表对象的创建与删除,其他类型到列表的转换,内置range(),使用+运算符、append()方法、extend()方法、insert()方法为列表增加元素,使用del命令、pop()方法、remove()方法删除列表元素,使用下标访问列表元素,使用index()方法获取列表元素下标,使用count()方法获取列表元素出现次数,有序序列的双向索引,使用成员资格判断运算符in判断列表中是否存在指定元素,使用切片访问、修改、删除、增加列表元素,列表排序方法sort()与内置排序函数sorted()以及列表逆序方法reverse()与内置逆序函数reversed(),len()、max()、min()、sum()、zip()、enumerate()等内置函数对列表对象的操作,使用列表推导式快速生成列表。
教学难点:自动内存惯例,切片操作,列表推导式,排序方法的key参数。
3.2 元组
教学重点:元组对象的创建与删除,其他类型到元组的转换,元组与列表的区别,生成器推导式。
教学难点:元组与列表的区别,元组的不可变本质,生成器表达式与列表推导式的效率比较。
3.3 字典
教学重点:字典对象的创建与删除,字典元素、键、值的访问方法,字典元素的添加与修改,使用字典对象的get()方法获取指定键对应的值,有序字典对象的使用,使用字典来计数,有序字典。
教学难点:字典对象的get()方法,访问字典对象时可以使用键作为下标,字典对象的键必须为不可变对象。 4 3.4 集合
教学重点:集合对象的创建与删除,其他类型数据到集合的转换,使用add()方法为集合增加元素,使用pop()和remove()方法删除元素,使用clear()方法清空集合,集合的并、交、差以及对称差等运算,使用集合来提取序列中的唯一元素。
教学难点:Python运算符的多重含义。
3.5 序列解包的多种形式和用法
教学重点:序列解包的本质——对多个变量同时赋值;序列解包的要求——等号右侧值的数量与等号左侧变量的数量一致。
教学难点:多个变量同时赋值。
第4章 程序控制结构
4.1 条件表达式
教学重点:Python关系运算符可以连用,枚举序列元素时多使用成员测试运算符in,算数运算符/和//的区别,任何合法的Python表达式都可以作为条件表达式,False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空迭代对象作为条件表达式与False等价。
教学难点:关系运算符可以连用,Python中的False等价对象,几乎所有Python表达式都可以作为条件表达式来使用。
4.2 选择结构
教学重点:单分支选择结构、双分支选择结构、多分支选择结构、选择结构的嵌套,条件表达式后必须有冒号且换行缩进后开始写代码块,elif关键字表达else if的意思。
教学难点:缩进体现代码的业务逻辑。
4.3 循环结构
教学重点:for循环、while循环,range对象在循环中的使用,成员测试符in与序列解包在循环语句中的使用,带有else子句的循环结构,编写多层嵌套的循环语句时应尽量减少内循环中的计算;break与continue语句的作用。 5 教学难点:带有else子句的循环结构,循环代码的优化。
4.4 精彩案例赏析
教学重点:体会Pythonic的含义,感受Python程序的美。
第5章 函数
5.1 函数定义与使用
教学重点:Python函数的定义形式,def关键字,不需要声明函数的参数类型和返回值类型,括号不可以省略,冒号必须有。函数嵌套定义。函数递归调用。
5.2 函数参数
教学重点:形参与实参的概念,在函数内部直接修改形参不会影响实参。位置参数、默认值参数、关键参数和长度可变参数的用法。传递参数时的序列解包。
5.3 变量作用域
教学重点:在函数内如果只引用某个变量的值而没有为其赋新值,该变量为(隐式的)全局变量;如果在函数内任意位置有为变量赋新值的操作,该变量即被认为是(隐式的)局部变量,除非在函数内显式地用关键字global进行声明。
教学难点:局部作用域与全局作用域的区别,在函数内部定义全局变量的方法。
5.4 lambda表达式
教学重点:使用lambda表达式声明匿名函数和命名函数,在lambda表达式中调用函数,把lambda表达式作为函数参数。
教学难点:lambda表达式作为其他函数的参数。
5.5 生成器函数设计要点
教学重点:yield语句和return语句的区别,生成器对象的惰性求值特点。
教学难点:生成器对象的惰性求值。
5.6 精彩案例赏析
第6章 面向对象程序设计