Python的模块
课题
Python的模块
单元
算法与程序设计
学科
信息
年级
八年级
主备人
时间
教学目标
1、理解模块的概念,掌握模块的导入及函数引用方法。
2、掌握Python的两个常用内置模块math和random。
3、理通过实例,培养学生对模块应用的能力。
重点
模块的概念,模块的导入及函数的引用。
难点
模块的导入及函数的引用。
教 学 过 程
二次备课
一、知识回顾
508017208500回顾斐波那契数列实例
16306802603500
在实例中应用了几个内置函数:range() int() input() print()
可以将这些函数看成一件件工具,帮助我们完成实例工程。
为了方便调用,我们还自定义了一个fib()函数,帮助我们完成斐波那契数列中第N个数,并且还可以方便后续的使用。
二、模块概念
随着我们自定义的函数越来越多,可以用复制粘贴的方法再次使用,也可以将这些函数放在一个py文件中,也就相当于把我们制作好的工具放在一个工具箱中,有需要的时候再拿出来使用。
这个存放工具的箱子就是——模块
★ 知识链接:
1、模块(module):用来把函数、变量,以及其他东西组织成更大的、更强的程序。
2、模块是一个保存了Python代码的文件(.py)。
模块能定义函数,类和变量,也能包含可执行的代码。
3、模块的种类:
(1)内置模块,如math、random、time等;
(2)自定义模块,自己编写函数后封装;
(3)开源模块,numpy、matplotlib等,通过pip install安装。
思考:我们编写的程序也是保存为.py文件的,它和模块文件有区别吗?
三、模块导入
内置函数可以直接使用,如int(),但是模块中的函数需要先导入模块才能使用里面的函数,如math模块中的sqrt()函数,必须先打开math模块工具箱,再拿出sqrt()函数工具使用。这个过程我们称“模块导入”。
以math模块为例:
先介绍此模块中的常用函数,再以sqrt()为例介绍练习。
任务一:计算2的平方根
12700698500
-1206513081000
任务二:计算2的3次幂
pow()函数语法格式: pow(x, y)
1778015938500说明:计算x的y次幂,功能同x**y
★ 日积月累:
内置函数dir()查看模块内部的函数名(以及类和常量标识符名称等)
四、常用内置模块math和random
17780179070(一)math模块
(二)random模块
190501841500
五、应用:求圆周率π值
圆周率π是一个无理数,没有任何一个公式能够精确计算π值。
采用蒙特卡洛方法计算π值。
蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是指使用随机数来解决很多计算问题的方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。
它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法。
它诞生于上个世纪40年代美国的“曼哈顿计划”,名字来源于赌城蒙特卡洛,象征概率。
一个正方形内部相切一个圆,圆和正方形的面积之比是:
在这个正方形内部,随机产生num个点(这些点服从均匀分布),计算它们与中心点的距离是否大于圆的半径,以此判断是否落在圆的内部。此时,内切圆内的点数point与正方形内的点数num之比近似于内切圆面积与正方形的面积之比。
统计圆内的点数point,与num的比值乘以4,就是π的值。理论上,num越大,计算的π值越精确。
(一)问题分析
-317516192500构造一个单位正方形和1/4圆
508014668500投点落在单位正方形内随机均匀分布
(二)设计算法
2233295725805通过随机函数随机产生一个投点(x, y),使用勾股定理计算出投点到原点的距离: 。若投点在扇形内,则计数器point加1。
63506604000
47625-63500
4762514732000(三)编写程序
(四)调试运行
7620192405保存文件后,按F5运行程序。
-63532448500◎拓展应用:time模块中perf_counter()函数能记录程序运行时间(单位:秒),尝试使用该函数统计程序运行所用的时间。
16306803683000
六、课堂总结
1、模块概念:模块是一个保存了Python代码的文件(.py)。
模块能定义函数,类和变量,也能包含可执行的代码。
2、模块导入:
import <模块> [as <别名>]
from <模块> import <函数名>
3、查看模块函数名和帮助方式:
>>> import 模块名
>>> dir(模块名)
>>> help(模块名)
>>> help(模块名.函数名)
七、随堂练习
1、运行下列语句,观察结果。
>>>import random
>>>dir(random)
>>>help(random)
>>>random.random()
>>>random.randint(1, 10)
2、程序填空。
首先,自定义函数left(),并保存到模块文件move.py中。
# 模块文件:move.py
#将列表循环左移k位
def left(lst, k):
temp = lst
for i in range(k):
temp.append(temp.pop(0))
return temp
然后,新建“列表元素的循环左移”文件lst_move.py,程序代码如下,请填写空缺的代码。
import
p = [1, 2, 3, 4, 5, 6]
n = 3
print( )
※注意:两个文件要放在同一目录下。
八、布置作业
作业本第13课
课堂反思