专栏名称: Python小屋
清华出版社《Python程序设计》系列教材作者董付国的Python小屋。介绍Python基础语法知识、标准库、扩展库知识,探讨Python在各领域的应用。
目录
相关文章推荐
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  23 小时前  
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  23 小时前  
Python爱好者社区  ·  DeepSeek创始人梁文锋个人履历 ·  2 天前  
Python爱好者社区  ·  离谱!下载DeepSeek最高判刑20年? ·  昨天  
Python开发者  ·  请立即拿下软考证书(政策风口) ·  4 天前  
51好读  ›  专栏  ›  Python小屋

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

Python小屋  · 公众号  · Python  · 2020-12-20 12:05

正文

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

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


Python 程序设计基础与应用

院(系、部) :


教研室 :


:

2018 9 20


一、 课程简介 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  转义字符与原始字符串

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

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与Java S cript基础

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

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基本操作

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

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  绘制雷达图

教学重点: 绘制雷达图的原理,创建极坐标系,







请到「今天看啥」查看全文


推荐文章
Python爱好者社区  ·  史上最强!PINN杀疯了
23 小时前
Python爱好者社区  ·  DeepSeek创始人梁文锋个人履历
2 天前
Python爱好者社区  ·  离谱!下载DeepSeek最高判刑20年?
昨天
Python开发者  ·  请立即拿下软考证书(政策风口)
4 天前
超神助手  ·  亲儿子EZ未来战士皮肤要被重做了
8 年前
全球见证分享网  ·  金典圣诗|生命路上歌
7 年前