第三单元算法与程序设计第13课python的模块 课件 2024—2025学年浙教版(2020)信息科技八年级上册

2024-09-20
| 31页
| 848人阅读
| 3人下载
普通

内容正文:

Python语言 使用函数可将代码块与主程序分离,使程序更加容易理解。 还可将函数存储在称为模块的独立文件中,既可隐藏程序代码细节,又可在不同程序中重复使用函数。 模块 2 模块是什么? 模块 函数就像积木,那么模块可以认为是一桶积木。 一般开发者会把类似的或者将一个项目函数收集在一个模块中。Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 模块(Module) 是用来把函数、变量, 以及其他东西组织成更大的、更强的程序。 Python提供了大量模块, 有些模块内置在Python之中, 如用于数学计算的模块math; 有些模块需要单独下载, 如用于科学计算的模块numpy。 一、模块概念 模块就是一个以.py结尾的独立的程序代码的文件,实现了特定的功能。 模块 4 在Python中, 模块分为以下几种: 1.系统内置模块:如math、random、time等。 2.自定义模块:自定义模块是用户编写的模块,对某段逻辑或某些函数进行封装后,供其他程序调用。 3.第三方的开源模块:如numpy、matplotlib等, 可以通过pip install进行安装后调用。 模块 5 在自定义模块时,有几点要注意: (1)为了使IDLE能找到我们自定义模块,该模块要和调用的程序在同一目录下,否则在导入模块时会提示找不到模块的错误。 (2)模块名要遵循Python变量命名规范,不要使用中文、特殊字符等。 (3)自定义的模块名不要和系统内置的模块名相同,可以先在IDLE 交互环境里先用“import model_name”命令检查,若成功则说明系统已存在此模块,然后考虑更改自定义的模块名。 模块 6 二、模块导入 在Python中, 模块中的函数不能直接使用, 需要先导入。 模块 7 模块的导入主要有以下两种方法: 导入整个模块文件,使用模块中的函数,格式如下: Import <模块> as<别名> <模块>.<函数名>() 这种导入模块的方法,相当于给导入的模块名称重新起一个别名,便于记忆,很方便地在程序中调用。 模块 8 例如,计算2的平方根,先导人模块,再使用函数,如图所示。 导入整个模块文件 模块 9 from<模块>import<函数名> <函数名>() 导入模块中的指定函数,直接使用该函数,格式如下: 函数名如果有多个,可用逗号“,”隔开。 函数名可用通配符“*”导出所有的函数。 这种方法要慎用,因为导出的函数名称容易和其它函数名称冲突,失去了模块命名空间的优势。 模块 10 又如计算2的3次幂,导入指定函数后,就可以直接使用该函数,如图所示。 只导入模块中指定函数 模块 11 使用dir() 函数查看math模块内部的函数名 模块导入后, 可以使用内置函数dir() 查看模块内部的函数名(以及类和常量标识符名称等),如图所示。 模块 12 三、常用内置模块math和random math模块是Python提供的内置数学类模块,下 表列出math模块中的2个常量和2个函数。 1.math模块 名称 数学表示 含义 圆周率pi π π的近似值,15位小数 自然常数e e e的近似值,15位小数 pow(x, y) xy 计算x的y次幂 sqrt(x) ꇌ√x 计算x的平方根 模块 13 random模块提供了不同类型的随机数函数, 表13-2列出了常用的4个随机数生成函数。 2.random模块 名称 含义 seed(x) 给随机数一个种子值,默认随机种子是系统时钟 random() 随机生成一个0至1(不含1)之间的实数 uniform(a, b) 随机生成一个a至b之间的实数 rand int(a, b) 随机生成一个a至b之间的整数 模块 14 采用蒙特卡洛方法计算π的值。 圆周率π是一个无理数,没有任何一个公式能够精确计算π值, π的计算只能采用近似算法。 蒙特卡洛方法(MonteCarlomethod) 也称统计模拟方法, 是指使用随机数来解决计算问题的方法。 四、Python模块的应用实例 模块 15 1.问题分析 首先构造一个单位正方形和1/4圆,如图所示。 模块 16 随机向单位正方形内抛洒大量“点”,而每个点可能在圆内或者在圆外 当随机点数量达到一定程度,在1/4圆内的点将构成其面积(S圆=π/4),全部点将构成正方形面积 (S正=1)。 此时,抛点落在圆内的概率(p),就是上述面积之比(P=S圆/S正=π/4)得到π=4p。 随机点的数量越大,得到的一值越精确。 模块 17 根据上述分析,单位正方形内抛点的横坐标和纵坐标可通过随机函数产生 通过计算抛点到原点的距离(d)来判断该点是否落在圆内。 若抛点落在圆内,则计数器(point) 加1。 2.设计算法 模块 18 随机向单位正方形内抛洒大量点(num) ,可通过循环实现。 抛点落在圆内的概率为p=point/num 其算法用流程图表示,如图所示。 模块 19 根据设计的算法, 其程序代码如下所示。 3.编写程序 Import random import math num=int(input("请输入投点数:") ) point = 0 For i in range(1, num+1) : x y=random.random(),random.random() dist=math.sqrt(x**2+y**2) if_dist<=1.0: point =point+ 1 Pi=4*(point/num) print("Pi的值是:", Pi) 模块 20 按“F5”键,分别输人20000和20000000,运行结果如图所示。 4.调试运行 可见,投入的点越多,计算的一值越精确。 模块 21 模块 在编写程序时,经常需要提供一些随机数据。大多数编程语言提供了生成伪随机数的函数,在Python中这类函数被封装在random模块中。 函数名 说明 举例 random.random() 返回[0.0,1.0]区间内的一个随机小数 random.random()返回0.9523521796999529 random.uniform(a,b) 返回[a,b]区间内的一个随机小数 random.uniform(1,3)返回2.3403540401554146 random.randint(a,b) 返回[a,b]区间内的一个随机整数 random.randint(1,3)返回2 random.randrange([start],end,[step]) 返回[start,end)区间内的一个整数,start和step默认都是1 random.randrange(1,10)返回5 random.choice() 随机返回给定序列中的一个元素 random.choice(['a','b','c'])返回'c' random.shuffle(x,[random]) 将可变序列的所有元素随机排列 random.shuffle([1,2,3,4])返回[1, 4, 3, 2] 22 import random #随机数模块 print(random.randint(1,100))# 在1-100里随机取一个整数 print(random.uniform(1,900))# 取一个小数,顾头也顾尾 stus=['zhangsan','lisi','xiaohong'] print(random.choice(stus))#随机取一个元素 print(random.choice('sdfgadsgadfg')) print(random.sample(stus,2))# 随机取两个元素 l=list(range(1,101)) print('洗牌之前的',l) print(random.shuffle(l)) #洗牌,也就是打乱,没有返回值,只能传list,所以下面要在print一下 print('洗牌之后的',l) 模块 24 >>> import math >>> print math <module 'math' (built-in)> >>> print math.pi #导出圆周率的值 3.14159265359 我们如果直接访问 pi,不加math这个前缀会发生什么情况呢? >>> print pi Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> print pi NameError: name 'pi' is not defined 模块 >>> from math import pi >>> print (pi) 3.141592653589793 >>> 会有更快速、更省事的Python模块导入方法呢? 模块 >>> from math import * >>> >>> pi 3.141592653589793 >>> cos(pi) -1.0 >>> 一次性的将所有python 调用函数方法导入,好处是代码看起来非常简洁,但是如果同时导入多个模块,要考虑模块方法名冲突等这些问题 。 模块 两种方法导入模块的区别 模块 from…import *语句与import区别在于: import 导入模块,每次使用模块中的函数都要指定是哪个模块。(哪个文件夹中的哪个文件,相当于导入的是一个文件夹,是个相对路径) from…import * 导入模块,每次使用模块中的函数,直接使用函数就可以了;注因为已经知道该函数是那个模块中的了。(已经绑定了文件夹,只需要知道要用哪个文件即可,相当于导入的是一个文件夹中所有文件,所有函数都是绝对路径) 模块 Python程序由模块构成,模块中包含若干条语句,语句包含表达式。 1. 物理行和逻辑行 Python程序由若干逻辑行组成。物理行是在编写程序时所看见的,而逻辑行是Python看见的单条语句,一个逻辑行可以包含多个物理行。 Python中语句不能跨逻辑行,在遇到较长的语句时,可以使用语句续行符号,将一条语句写在多行之中。 Python中的续行方式,可以使用“\”符号。 模块 2 . 语句分隔 通常建议每行只写一条语句,这样代码更加易读。如果想要在一个物理行中使用多于一条逻辑语句,那么需要使用分号“;”来特别地标明这种用法,分号表示一个逻辑语句的结束。 3. 缩进 在Python中行首的空白称为缩进,逻辑行首的空白(空格或制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。 要求同一层次的语句必须有相同的缩进,每一组这样的语句称为一个代码块,错误的缩进会引发错误。 感谢聆听 $$

资源预览图

第三单元算法与程序设计第13课python的模块  课件  2024—2025学年浙教版(2020)信息科技八年级上册
1
第三单元算法与程序设计第13课python的模块  课件  2024—2025学年浙教版(2020)信息科技八年级上册
2
第三单元算法与程序设计第13课python的模块  课件  2024—2025学年浙教版(2020)信息科技八年级上册
3
第三单元算法与程序设计第13课python的模块  课件  2024—2025学年浙教版(2020)信息科技八年级上册
4
第三单元算法与程序设计第13课python的模块  课件  2024—2025学年浙教版(2020)信息科技八年级上册
5
第三单元算法与程序设计第13课python的模块  课件  2024—2025学年浙教版(2020)信息科技八年级上册
6
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。