7.1模块
模块是包含函数和其他语句的Python脚本文件,它以。py为后缀名,也就是Python程序的后缀。用作模块的python程序与其他的程序没什么区别。
python 中可以使用以下三种方式导入模块或者模块中的函数:
- import 模块名
- import 模块名 as 新名字
- from 模块名 import函数名
例子
import math #直接导入math模块
from math import sqrt #只导入math模块sqrt()函数,可直接使用
import math as shuxue #导入math模块并重命名为shuxue
print('调用mathsqrt:\t',math.sqrt(2)) #直接导入方式的调用
print('直接调用sqrt:\t',sqrt(2)) #调用仅导入的函数
print('调用shuxue.sqrt:\t',shuxue.sqrt(2)) #调用冲命名
7.1.2 自己编写模块
自己编写模块其实和平常写python程序是相同的,它既可以是一个解决某个问题的独立程序,也可以使几个函数构成。
例子
#模块文件
#文件名称:module_test.py
print('导入的测试模块的输出') #被导入时会被执行的输出信息
name='module_test.py' #定义一个变量
def m_t_pr(): #模块中的函数定义
print('模块module_test中m_t_pr()函数')
#调用自己编写的模块
#文件名: a8_2.py
import module_test #导入模块
module_test.m_t_pr() #调用导入模块的函数
print('使用module_test模块中的变量:',module_test.name) #使用导入模块中的变量
7.1.3 模块位置
编写好的模块只有倍python找到才能被导入。如果没有找文件 会应发ImportError错误,即找不到要导入的模块。
一般来说python解释器在运行程序当前将当前目录添加到sys.path路径列表中,模块查找路径在python总可以通过sys模块来进行操纵,代码如下:
import sys #导入sys 模块
print(sys.path) #输出当前模块查找路径(列表形式)
sys.path.append(Apath) #添加Apath 为模块查找路径
若将 module_test.py转移到module目录中,
例子:
#调用自己编写的模块
#文件名: a8_2.py
import sys
sys.path.append('D:\BaiduNetdiskDownload\Python入门\demo\\module')
import module_test #导入模块
module_test.m_t_pr() #调用导入模块的函数
print('使用module_test模块中的变量:',module_test.name) #使用导入模块中的变量
7.2 包
等应用程序或项目具有较多的功能模块时,如果把它们都放在同一个文件夹下,就显得不合理了。这是可以使用Python中提供的包来管理较多的功能模块。使用包的好处在于可以有效避免名字冲突,便于包的维护管理。
其实就是一个文件夹或目录,但其中必须包含一个名为“__init__.py”(init的前后均是两条下划线)的文件。“__init__.py”可以是一个空文件。仅用于比表示该目录是一个包。此外包还可以嵌套,既把包放在某个包里。
包可以看作处于同一目录中的模块。在Python中首先使用目录名,然后再使用魔幻名导入所有需要的模块。要导入纸包,必须依照包顺序一点风格使用import进行导入。
例如,对于一个web项目可能的包组织结构如下:
mywebproj/
manage.py
urls.py
__init__.py
handle/
__init__.py
index.py
info.py
temple/
index.html
info.html
tools/
__init__.py
send_emal.py
graphic.py
如果在主程序中调用Handel包中的__index__.py。模块中的hdl()函数,使用以下三种方法导入:
import handle.index #导入后应使用 handle.index.hdl()调用
from handle import index #导入后应使用 index.hdl() 调用
from handle.index import hdl #导入后应使用hdl()调用
7.3 包详解
上述一节中所述的包目录中所属的__init__.py文件是一个空文件夹,只不过是作为包的一个标志。
实际上在第一次导入保重的任何部分,就会执行“__init__.py”文件中的代码,其中的变量和函数等也会自动导入。__init__.py文件中也可以包含可执行报的初始化工作的代码和设置__all__变量。对于在from中使用*共赔付导入包内所有的名字时,在__init__.py 中设置 __all__ 变量可以保证名字的正确导入
例子:
#当前目录下pack子目录中
#__init__.py文件的内容
name='pcka'
print('__init__.py中输出:',name)
def pack_test_fun():
print('pcka保重的方法pck_test_fun')
#以下是主程序的内容
#文件名:a8_3.py
import pcka
print("输出pcka保重的变量name:",pcka.name)
print('调用pcka包中的函数:',end='')
pcka.pack_test_fun()
7.3 Python常用标准库简介
7.3.1 数学模块
math标准函数库概述
math库一共提供了4个数学常数和44个函数。44个函数分为4类,包括:16个数值表示函数、8个幂对数函数、16个三角对数函数和四个高等特殊函数
是Python提供内置数学类函数库
在使用math库前,用import导入该库
import math
math.pi | 数学常数π |
---|---|
math.e | 数学常数e |
math.tau | 数学常数τ |
math.inf | 浮点正无穷大 |
math.nan | 浮点“非数字”(NaN)值 |
函数
数论和表示函数
math.ceil(x )
返回x的上限。
math.floor(x )
返回x的最小值,小于或等于x的最大整数。
math.copysign(x,y )
若y<0,返回-1乘以x的绝对值;否则,返回x的绝对值
math.fabs(x )
返回x的绝对值。
math.factorial(x )
返回x阶乘。
math.fmod(x,y )
返回x%y(取余)
math.frexp(x )
返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围
math.fsum(可迭代的)
对每个元素进行求和操作
math.gcd(a,b )
返回整数a和b的最大公约数。
math.isclose(a,b,*,rel_tol = 1e-09,abs_tol = 0.0 )
如果值a和b彼此接近则返回True, 否则返回False。
math.isfinite(x )
如果x是正无穷大或负无穷大,则返回True,否则返回False
math.isnan(x )
如果x不是数字True,否则返回False
math.modf(x )
返回由x的小数部分和整数部分组成的元组
math.modf(12.34)
(0.33999999999999986, 12.0)
math.trunc(x )
返回x的整数部分
功率和对数函数
math.exp(x )
返回ex。**
math.expm1(x )
返回math.e的x(其值为2.71828)次方的值减1
math.log(x [,base ] )
使用一个参数,返回x的自然对数(到基数e)。
math.log1p(x )
返回x+1的自然对数(基数为e)的值
math.log2(x )
返回x的基2对数
math.log10(x )
返回x的以10为底的对数
math.pow(x,y )
返回x的y次方,即xy**
math.sqrt(x )
返回x的平方根。
三角函数
math.acos(x )
以弧度为单位返回x的反余弦值。
math.asin(x )
以弧度为单位返回x的反正弦值。
math.atan(x )
以弧度为单位返回x的反正切值。
math.atan2(y,x )
以弧度返回atan(y / x)。结果是在-pi和pi之间。
math.cos(x )
返回x弧度的余弦值。
math.hypot(x,y )
返回欧几里德范数,。
math.sin(x )
返回x弧度的正弦值。
math.tan(x )
返回x弧度的正切值。
角度转换
- math.degrees(x )
将角度x从弧度转换为度数。
math.radians(x )
将角度x从度数转换为弧度。
双曲函数
math.acosh(x )
返回x的反双曲余弦值。
math.asinh(x )
返回x的反双曲正弦值。
math.atanh(x )
返回x的反双曲正切。
math.cosh(x )
返回x的双曲余弦值。
math.sinh(x )
返回x的双曲正弦值。
math.tanh(x )
返回x的双曲正切值。
特殊功能
-
math.erf(x )
返回x处 的错误函数。 -
math.erfc(x )
返回x处的互补误差函数。 -
math.gamma(x )
在x处 返回Gamma函数。 -
math.lgamma(x )
在返回Gamma函数的绝对值的自然对数X。
参考地址: