内容正文:
情景三 优化程序的性能
主题
包与库
序号
4
课时
2
教学手段
多媒体、板书、实训室
教学方法
讲授法、演示法、案例法
教学课型
□理论 □实训 √一体化 □( 其它 )
教学目标
能力目标:能够完成自定义包的创建和导入并使用,能够熟练使用os库常用函数和path子模块、能够使用matplotlib第三方库按要求生成可视化图表。
知识目标:了解包和库的区别和特点,掌握常用的标准库和第三方库。
素质目标:接受新知识、自主学习的能力 。
教学重点
标准库
教学难点
第三方库
教学过程设计
备注
一、复习上一节上课内容并引出本节上课内容
人机交互技术(Human-Computer Interaction Techniques)是指通过计算机输入、输出设备,以有效的方式实现人与计算机对话的技术。人机交互技术包括机器通过输出或显示设备给人提供大量有关信息及提示请示等,人通过输入设备给机器输入有关信息,回答问题及提示请示等。人机交互技术是计算机用户界面设计中的重要内容之一。本次任务需要完成两个综合练习,一是输入数字后进行四则运算(画出流程图)、二是输入用户信息后格式化输出(增加注释)。
二、教学内容
1、什么是包
我们已经学习了模块的基本知识。掌握了Python模块(module)可以有效地避免命名空间的冲突,可以隐藏代码细节让我们专注于高层的逻辑;同时还可以将一个较大的程序分为多个文件,从而提升代码的可维护性和可重用性。那什么是包呢?简单来说,包(package)就是一个文件夹,每个包目录中必须存在__init__.py文件,也就是装着__init__.py文件的文件夹,该文件的内容可以为空。包是一个分层次的文件目录结构,是模块和子包的集合体。
2、什么是库
Python库(library),是模块和包的集合,分为标准库、第三方库和自定义库。Python的标准库也称为Python内置库,是随着Python安装的时候默认自带的库,常用标准库如下表3-3所示;Python的第三方库是由他人所写或开源分享出来的,具有特定功能的模块,一般使用pip安装(需要额外安装至指定目录下),常用的第三方库如下表3-4所示;标准库和第三方库调用方式是一样的,都需要用import语句调用;自定义库是自己编写使用的模块。
表3-3 常用的标准库
序号
名称
功能描述
1
os
操作系统管理
2
sys
解释器交互
3
shutil
文件管理
4
math
数学常数和数学函数
5
random
随机数
6
datetime
日期和时间
7
time
时间访问和转换
8
json
JSON编码和解码
9
glob
查找文件
10
urllib
http访问
表3-4 常用的第三方库
序号
名称
类型
功能描述
1
pandas
数据分析和可视化
数据分析(数据探索、清理和分析)
2
numPy
科学计算的基础工具包
3
scipy
算法和数学工具
4
matplotlib
2D绘图库
5
pyecharts
生成 ECharts 图表
6
plotly
基于浏览器的 Python 图形库
7
Scrapy
网络爬虫
分布式爬虫框架
8
requests
网络请求库
9
bs4(Beautiful Soup)
可以从html或xml中快速提取指定数据
10
portia
开源可视化的爬虫规则编写工具
11
Cola
分布式的爬虫框架
12
pywin32
自动化
调用 Windows API
13
selenium
Web应用程序测试的工具
14
PyMySQL
操作MySQL数据库
15
pymongo
操作MongoDB
16
openpyxl
处理Excel文档
17
python-docx
处理Word文档
18
Pillow
处理图形
19
Django
Web开发
开源Web应用框架
20
Flask
轻量级Web应用框架
21
scikit-learn
机器学习
机器学习(处理复杂数据)
22
tensorflow
机器学习开源软件库
23
pygame
游戏开发
2D动画和游戏开发引擎
24
pyglet
3D动画和游戏开发引擎
25
wxPython
图形用户界面
GUI工具1
26
pyQt
GUI工具2
3、包的使用
Python 包和模块的结构和操作系统中的文件夹和文件类似。创建包就是创建一个文件夹,然后将相关的模块文件存储到该文件夹内;为了让 Python 将一个文件夹当作包使用,必须要在文件夹中创建一个__init__.py 文件。
通过前面的学习我们知道,包其实本质上还是模块,因此导入模块的语法同样也适用于导入包。无论导入自定义包,还是导入第三方包,导入方法可以归结为以下三种方法,用 [ ] 括起来的部分,是可选部分,即可以使用,也可以忽略。
(1)import 包名[.模块名 [as 别名]]
(2)from 包名 import 模块名 [as 别名]
(3)from 包名.模块名 import 成员名 [as 别名]
4、标准库
在常用标准库中有一个操作文件和文件夹的os库,它提供通用的、基本的操作系统交互功能,主要有:系统相关变量和操作、文件和目录相关操作、执行命令和管理进程,使用print(dir(os))可以发现,os标准库包含了丰富的函数,输出结果如下图所示。
5、第三方库
NumPy是Python的一种开源的数值计算扩展,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用,可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效。在任务1.3中已经介绍了第三方库的安装,这里就不再赘述。
matplotlib是一个python 2D绘图库,利用它可以画出许多高质量的图像,开发者仅需要几行代码,便可以生成直方图,条形图,饼图,散点图等。
matplotlib图由构成实际图元素的层次结构组成,如图3-21所示。每个元素都可以被修改,这些元素(python中的对象)包括坐标轴(Axis)、坐标轴名称(Axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(Grid)、图例(Legend)、标题(Title)等。
三、总结
通过本次任务的学习和实践,使我们了解了包与库的区别和特点,掌握了如何创建包和导入包的三种方法,并且通过综合实训的引导,能够熟练运用标准库大幅提高程序开发的效率;能够安装和使用第三方库完成特定功能的实现。
功能强大的第三方库,可以让开发者站在巨人的肩膀上工作,将重要工作由造轮子变成了找轮子,而一个好的轮子有以下特殊:开源、低耦合、有开发文档、接口友好、社区相对活跃等。为了找到好轮子,需要同学们具备信息检索能力、外文资料阅读能力和代码阅读能力以及平时的经验积累。正所谓:“不积跬步无以至千里,不积小流无以成江海”。
作业布置
可视化显示手机销售市场份额
教学反思
学科网(北京)股份有限公司
$$