python入门 七 复杂程序组织 模块math

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 )
返回e
x。**

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次方,即x
y**

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。

参考地址:

https://blog.csdn.net/syy6321/article/details/88542644

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值