《Python程序设计基础与应用》配套教学大纲

2020年12月19日 308点热度 0人点赞 0条评论

好消息:“Python小屋”编程比赛正式开始

推荐教材:《Python程序设计基础与应用》(ISBN:9787111606178),董付国,机械工业出版社
图片
图书详情:图片
配套资源:
用书教师可以联系董老师获取教学大纲、课件、源码、电子教案、考试系统等配套教学资源。
《Python程序设计基础与应用》前3章书稿PDF免费阅读
《Python程序设计基础与应用》课后习题答案
================
Word版教学大纲下载地址:
链接: https://pan.baidu.com/s/1iMxCOUBhRi7jYK-fnYC1cA
提取码: qa9b


Python程序设计基础与应用

     

    

 

            

院(系、部):

教研室:

  :

2018920

 

   

   

  

一、 课程简介1

 教学目的和要求1

 教学中应注意的问题1

四、 教学内容2

1章  Python概述2

2章  内置对象、运算符、表达式、关键字3

3章  Python序列结构3

4章  选择结构与循环结构5

5章  函数6

6章  面向对象程序设计7

7章  字符串8

8章  正则表达式9

9章  文件内容操作9

10章  文件与文件夹操作10

11章  异常处理结构11

12章  tkinter编程案例11

13章 网络爬虫入门与应用12

14章  Python数据分析与处理13

15章  数据可视化13

 教学课时分配14

 教材与参考书目15

 

 

 

一、 课程简介

课程名称:Python程序设计基础     课程编号:

课程性质:必修            适用专业:非计算机专业

前导课程:无             考核方式:考试

建议学时:48+16

 教学目的和要求

通过本课程的学习,使得学生能够理解Python的编程模式,熟练运用Python列表、元组、字典、集合等基本数据类型以及列表推导式、切片等语法来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计与使用,了解正则表达式基本语法和使用,熟练使用Python读写文本文件与二进制文件,了解Python程序的调试方法,了解Python面向对象程序设计基础知识,掌握使用Python编写网络爬虫程序的方法,掌握Python+pandas进行数据处理的基本用法,掌握使用Python+matplotlib进行数据可视化的用法。

在教学和学习过程中,应充分发挥Python语言的优势,从最简单、最直观的思路出发,尽快解决问题。不建议在底层语言细节上花费太多时间。

 教学中应注意的问题

Python编程模式中非常重要的一条是代码简单化、问题简单化,同时应保证代码具有较强的可读性。在教学过程中,尽量避免在Python程序中带有其他编程语言的痕迹,要尽量从最简单的角度去思考和解决问题、实现自己的想法和思路,尽量多使用Python内置函数、标准库对象和合适的扩展库对象,多使用函数式编程模式,保证代码的优雅、简洁,让代码更加Pythonic。

使用Python编程解决问题应充分借鉴和使用成熟的标准库和扩展库,尽量避免自己编写完整的业务逻辑,部分具体操作完全可以使用扩展库来实现,大幅度提高开发效率,同时还能保证代码质量。例如:如果需要进行排序则直接使用内置函数sorted()或列表的sort()方法进行排序,没有必要再自己使用选择法排序、冒泡法排序或堆排序等排序算法来编写代码实现;计算最大公约数应习惯于使用math标准库的gcd()函数,不要再自己编写辗转相除法代码;对数据进行随机乱序应使用random标准库中的shuffle()函数;从给定数据集中随机选择元素应使用random标准库中的choice()、choices()或sample()函数;判断年份是否闰年应使用标准库calendar中的isleap()函数;生成组合和排列应使用标准库itertools中的combinations()和permutation()函数。

教学和使用过程中,还应注意一些函数和方法的高级用法。例如,内置函数sorted()、max()、min()和列表方法sort()都可以指定key参数实现自定义排序规则;内置函数int()可以使用第二个参数来指定进制;扩展库pandas中很多方法都支持inplace参数实现原地操作;扩展库matplotlib中的很多函数都支持大量的参数来指定图形的高级属性。

四、 教学内容

1章  Python概述

1.1  Python语言简介

教学重点:Python命令式编程和函数式编程的概念,Python语言常见应用领域

1.2  Python版本简介

教学重点:如何选择正确的Python版本,系统环境变量的设置。

1.3  Python开发环境的安装与配置

教学重点:IDLE的使用。

习题:1、3

1.4  Python编程规范

教学重点:缩进,空格与空行,不同数据类型的选择对程序运行效率的影响。

1.5  扩展库安装方法

教学重点:使用pip安装和管理Python扩展库在线安装、离线安装、指定国内源,本机多Python版本的扩展库安装

习题:2

1.6  标准库与扩展库中对象的导入与使用

教学重点:三种导入方法之间的区别。

习题:4

1.7  __name__属性的作用

教学重点:不同方式执行Python程序时__name__属性的值。

习题:5

 

2章  内置对象、运算符、表达式、关键字

2.1  Python常用内置对象

教学重点:不需要事先声明变量名及其类型变量动态类型特点,变量命名规范,数字、字符串、列表、元组、字典、集合的简单使用,数字大小无限制。

2.2  Python运算符与表达式

教学重点:同一个运算有不同含义,关系运算符和逻辑运算符的惰性求值特点复杂表达式中适当使用括号增加代码可读性

习题:1、2、3、4、5、8、9、10、11、12

2.3  Python常用内置函数用法

教学重点:很多函数有基本用法和高级用法,注意这些函数的可选参数例如max()、min()、sorted()函数的key参数,print()函数的sep和end参数,int()函数的base参数,enumerate()函数的start参数,sum()函数的start参数;理解函数式编程模式map()、reduce()、filter()这三个函数的使用

教学难点:函数式编程。

习题:6、7、13

2.4  Python关键字简要说明

 

3章  Python序列结构

3.1  Python序列概述

教学重点:序列结构的分类。

3.2  列表

教学重点:列表对象的创建与删除,其他类型到列表的转换,使用+运算符、append()方法、extend()方法、insert()方法为列表增加元素,使用del命令、pop()方法、remove()方法删除列表元素,使用下标访问列表元素,使用index()方法获取列表元素下标,使用count()方法获取列表元素出现次数,有序序列的双向索引,使用成员资格判断运算符in判断列表中是否存在指定元素,使用切片访问、修改、删除、增加列表元素,列表排序方法sort()与内置排序函数sorted()以及列表逆序方法reverse()与内置逆序函数reversed(),len()、max()、min()、sum()、zip()、enumerate()等内置函数对列表对象的操作,使用列表推导式快速生成列表。

教学难点:Python内存管理,切片操作,列表推导式,排序方法的key参数。

习题:1、2、3、4、5、8、9、13、14、15、16

3.3  元组

教学重点:元组对象的创建与删除,其他类型到元组的转换,元组与列表的区别,生成器推导式。

教学难点:元组与列表的区别,元组的不可变特点生成器对象的惰性求值特点

习题:10、11、12

3.4  字典

教学重点:字典对象的创建与删除,字典元素、键、值的访问方法,字典元素的添加与修改,使用字典对象的get()方法获取指定键对应的值,使用字典来计数。

教学难点:字典对象的get()方法,访问字典对象时可以使用键作为下标,字典对象的键必须为不可变对象且不允许重复

习题:7

3.5  集合

教学重点:集合对象的创建与删除,其他类型数据到集合的转换,使用add()方法为集合增加元素,使用pop()和remove()方法删除元素,使用clear()方法清空集合,集合的并、交、差以及对称差等运算,使用集合来提取序列中的唯一元素。

教学难点:并集、交集、差集等集合运算集合中的元素都是唯一的。

习题:6

3.6  序列解包

教学重点:序列解包的本质——对多个变量同时赋值;序列解包的要求——等号右侧值的数量与等号左侧变量的数量一致。

教学难点:多个变量同时赋值。

 

4章  选择结构与循环结构

4.1  条件表达式

教学重点:Python关系运算符可以连用,任何合法的Python表达式都可以作为条件表达式,False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空迭代对象作为条件表达式与False等价。

教学难点:关系运算符可以连用,作为条件表达式时与False等价对象,几乎所有Python表达式都可以作为条件表达式来使用。

4.2  选择结构

教学重点:单分支选择结构、双分支选择结构、多分支选择结构、选择结构的嵌套,条件表达式后必须有冒号且换行缩进后开始写代码块,elif关键字表达else if的意思。

教学难点:代码缩进。

习题:13

4.3  循环结构

教学重点:for循环、while循环,range对象在循环中的使用,成员测试符in与序列解包在循环语句中的使用,带else子句的循环结构,编写多层嵌套的循环语句时应尽量减少内循环中的计算;break与continue语句的作用。

教学难点:带else子句的循环结构,循环代码的优化。

习题:1、2、10、11、12

4.4  综合案例解析

教学重点:体会Pythonic的含义,感受Python程序的美。

习题:3、4、5、6、7、8、9

 

5章  函数

5.1  函数定义与使用

教学重点:Python函数的定义形式,def关键字,不需要声明函数的参数类型和返回值类型,括号不可以省略,冒号必须有。函数嵌套定义。函数递归调用。

5.2  函数参数

教学重点:形参与实参的概念,在函数内部直接修改形参不会影响实参。位置参数、默认值参数、关键参数和长度可变参数的用法。传递参数时的序列解包。

教学难点:调用函数时把实参的引用传递给形参。

习题:1、2、3、4

5.3  变量作用域

教学重点:在函数内如果只引用某个变量的值而没有为其赋新值,该变量为(隐式的)全局变量;如果在函数内任意位置有为变量赋新值的操作,该变量即被认为是(隐式的)局部变量,除非在函数内显式地用关键字global进行声明。

教学难点:局部作用域与全局作用域的区别,在函数内部定义全局变量的方法。在函数中任意位置有变量赋值语句则变量为隐式的局部变量,除非已使用关键字global进行声明。

5.4  lambda表达式

教学重点:使用lambda表达式声明匿名函数和命名函数,在lambda表达式中可以调用函数,把lambda表达式作为函数参数。

教学难点:lambda表达式作为其他函数的参数。

5.5  生成器函数设计要点

教学重点:yield语句和return语句的区别,生成器对象的惰性求值特点。

教学难点:生成器对象的惰性求值。

习题:5、6、7

5.6  综合案例解析

习题:8、9、10

 

6章  面向对象程序设计

6.1  类的定义与使用

教学重点:Python类的定义,class关键字,创建对象,访问对象中的成员。

6.2  数据成员与成员方法

教学重点:私有成员与公有成员,数据成员与成员方法,类方法与静态方法,属性的定义与使用self参数与cls参数

6.3  继承

教学重点:继承的作用与Python实现在派生类中访问基类中的成员

6.4  特殊方法

教学重点:构造方法__init__(),析构方法__del__(),__add__()、__mul__()、__pow__()及其他Python类特殊方法与运算符或内置函数的对应关系。

教学难点:特殊方法与运算符及内置函数的对应关系。

6.5  综合案例解析

习题:1、2、3、4

 

7章  字符串

7.1  字符串概述

教学重点:字符串界定符

7.2  字符串编码格式

教学重点:ASCII、UTF8、GBK的区别字节串与字符串之间的互相转换

7.2  转义字符与原始字符串

教学重点:转义字符的形式与用法,字符串前面加字母rR的含义。

7.4  字符串格式化

教学重点:format()方法,格式化的字符串常量。

7.5  字符串常用操作

教学重点:使用find()、index()、count()等方法以及关键字in确定字符串中是否包含另一个字符串,使用split()、partition()方法对字符串进行切分,使用lstrip()、rstrip()、strip()方法连接字符串,使用replace()、translate()对字符串进行“修改”,使用strip()方法删除字符串开始、结束或两侧的指定字符,使用lower()、upper()、capitalize()、title()、swapcase()等方法进行大小写转换,使用startswith()、endswith()方法测试字符串是否以另一个字符串开始或结束,使用center()、ljust()、rjust()等方法对字符串进行排版。

教学难点:字符串属于不可变对象,所有涉及修改的方法都是返回处理后的新字符串。

7.6  字符串常量

7.7  中英文分词

教学重点:Python扩展库jieba和snownlp的安装与使用

7.8  汉字到拼音的转换

教学重点:Python扩展库pypinyin的安装与使用

7.9  精彩案例赏析

习题:1、2、3

 

8章  正则表达式

8.1  正则表达式语法

教学重点:正则表达式基本语法与扩展语法,常用正则表达式的写法。

8.2  正则表达式模块re

教学重点:compile()、match()、search()、findall()、split()、sub()、escape()等re模块常用方法。

8.3  match对象

教学重点:match对象方法的用法。

8.4  综合案例解析

习题:1、2、3

 

9章  文件内容操作

9.1  文件的概念与分类

教学重点:文本文件与二进制文件的概念和区别。

9.2  文件操作基本知识

教学重点:open()函数的file、mode、encoding参数,文件对象flush()、close()、read()、readline()、readlines()、tell()、write()、writelines()等常用方法,上下文管理语句with的作用与用法。

教学难点:文件操作三步骤:打开文件、操作文件、关闭文件。

9.3  文本文件基本操作案例精选

教学重点:文本文件读写方法,read()、write()、seek()等文件对象常用方法的运用。

教学难点:在读写文件的同时会修改表示当前位置的文件指针。

习题:1、2

9.4  二进制文件操作案例精选

教学重点:二进制文件读写方式,对象序列化,pickle、struct、shelve等模块的用法。

9.5  Excel与Word文件操作案例

Excel、Word等常见类型文件的操作。

习题:3、4、5

 

10章  文件与文件夹操作

10.1  os模块

教学重点:listdir()函数,递归遍历文件夹。

教学难点:listdir()函数返回的列表中不包含子文件夹中的内容。listdir(path)函数返回的列表中的路径都是相对于参数path的相对路径,如果参数path不是当前文件夹,那么listdir(path)返回的列表中的路径都无法直接访问。listdir()函数返回的列表中的字符串是“乱序”的,大致来说,是按字符串转换为大写或小写之后的Unicode编码升序排序的,与我们习惯的按数字、拼音或字母顺序不一样。如果需要的话(例如按文件名编号升序排序后导入其他文件或系统),可以对列表中的字符串进行排序之后再使用。

10.2  os.path模块

教学重点:路径类型判断,路径连接,获取文件属性。

10.3  shutil模块

教学重点:复制文件,压缩与解压缩,删除目录树。

10.4  综合案例解析

习题:1、2、3、4

 

11章  异常处理结构

11.1  异常的概念与常见表现形式

教学重点:异常的概念与表现形式。

11.2  常用异常处理结构

教学重点:try...except...、try...except...else...、try...except...finally...

教学难点:异常处理结构本身的代码也可能会出错并抛出异常。

11.3  断言语句与上下文管理语句

教学重点:with语句在文件操作、数据库连接等方面的应用。

习题:1、2、3、4

 

12章  tkinter编程案例

12.1  tkinter简介

教学重点:使用tkinter开发GUI程序的流程和框架。

12.2  模拟用户登录

教学重点:文本框与按钮组件的应用,自动填写用户名和密码。

习题:1

12.3  选择类组件应用

教学重点:单选钮、复选框、组合框、列表框的应用。

12.4  简单画图程序

教学重点:不同类型图形的绘制,删除图形,鼠标事件处理。

12.5  电子时钟

教学重点:多线程,无标题栏、半透明、顶端显示、可拖动窗体的设计。

习题:2

12.6  屏幕颜色选择器

教学重点:pillow模块应用,鼠标事件处理。

12.7  抽奖式提问程序

教学重点:cycle对象的应用,多线程应用。

习题:3、4

12.8  简易计算器程序

教学重点:内置函数eval(),按钮事件处理。

12.9  定时自动关闭的窗口

教学重点:多线程应用,tkinter应用程序的destroy()方法。

 

13章 网络爬虫入门与应用

13.1  HTML与JavaScript基础

教学重点:HTML常用标签,JavaScript语法基础、事件、常用对象。

13.2  urllib基本应用与爬虫案例

教学重点:urlopen()函数,提交网页参数,使用代理。

习题:1

13.3  scrapy爬虫案例

教学重点:scrapy爬虫程序编写流程,选择器应用。

13.4  BeautifulSoup用法简介

教学重点:代码补全,HTML代码解析,获取标签内容或属性。

13.5  requests基本操作与爬虫案例

教学重点:requests基本操作与应用。

13.6  selenium爬虫案例

教学重点:模拟浏览器访问和获取指定页码内容。

习题:2

 

14章  Python数据分析与处理

14.1  Pandas基本操作

教学重点:创建SeriesDataFrame对象,查看统计信息,排序,数据选择与筛选,数据修改,异常值、重复值、缺失值的处理,数据离散化,移位与频次统计,拆分与合并,分组与聚合,数据差分,读写文件

14.2  Pandas结合matplotlib进行数据可视化

教学重点:折线图、柱状图的绘制。

14.3  Pandas应用案例

习题:1、2、3

 

15章  数据可视化

15.1  matplotlib简介

教学重点:使用pylab和pyplot绘图的一般过程。

15.2  绘制带有中文标题、标签和图例的折线

教学重点:绘制折线图的原理,设置中文标签、标题,设置图例。

习题:1

15.3  绘制散点图

教学重点:绘制散点图的原理,设置散点位置、符号形状、颜色、大小。

15.4  绘制饼状图

教学重点:绘制饼状图的原理,设置饼心位置半径、扇形颜色、标签、裂出效果、起始角度、百分比显示格式、阴影效果pie()函数参数含义与应用。

习题:2

15.5  绘制柱状图

教学重点:绘制柱状图的原理,设置柱的宽度和位置、内部填充、边线属性绘制文本显示柱的高度

习题:3、4、5

15.6  绘制雷达图

教学重点:绘制雷达图的原理,创建极坐标系,polar()thetagrids()、fill()函数应用。

15.7  绘制三维图形

教学重点:创建三维坐标系,三维曲线、曲线与柱状图的绘制

15.8  切分绘图区域

教学重点:subplot()函数参数的含义与应用。

15.9  设置图例

教学重点:legend()函数参数的含义

15.10  设置坐标轴刻度距离和文本

教学重点:xticks()与yticks()函数参数的含义   

    

 教学课时分配

教学课时分配表(参考)

    章 节 名 称

课堂学时

上机学时

1Python概述

2

2章  内置对象、运算符、表达式、关键字

4

2

3章  Python序列结构

4

2

4章  选择结构与循环结构

4

2

5章  函数

4

2

6章  面向对象程序设计

2

7章  字符串

4

2

8章  正则表达式

2

9章  文件内容操作

3

2

10章  文件与文件夹操作

2

11章  异常处理结构与单元测试

1

12章  tkinter编程案例

4

2

13章  网络爬虫入门与应用

4

14章  Python数据分析与处理

4

15章  数据可视化

4

2

合计

48

16

   

 教材与参考书目

1. 教材:董付国.《Python程序设计基础与应用》,机械工业出版社,2018

2. 参考书目:

董付国.《Python程序设计基础(第2版)》,清华大学出版社,2018

董付国.《Python程序设计(第3版)》,清华大学出版社,2020

董付国.《Python可以这样学》,清华大学出版社,2017

董付国.《Python程序设计开发宝典》,清华大学出版社,2017

董付国.《Python数据分析、挖掘与可视化(慕课版),人民邮电出版社,2020

72500《Python程序设计基础与应用》配套教学大纲

这个人很懒,什么都没留下

文章评论