知行编程网知行编程网  2022-01-07 17:54 知行编程网 隐藏边栏 |   抢沙发  3 
文章评分 0 次,平均分 0.0

在数学之中,除了加减乘除四则运算之外——这是小学数学——还有其它更多的运算,比如乘方、开方、对数运算等等,要实现这些运算,需要用到 Python 中的一个模块:Math

模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具。换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践的需要,于是就有人专门制作了另外一些工具。这些工具被称之为“模块”

任何一个 Pythoner 都可以编写模块,并且把这些模块放到网上供他人来使用。

当安装好 Python 之后,就有一些模块默认安装了,这个称之为“标准库”,“标准库”中的模块不需要安装,就可以直接使用。

如果没有纳入标准库的模块,需要安装之后才能使用。模块的安装方法,我特别推荐使用 pip 来安装。这里仅仅提一下,后面会专门进行讲述,性急的看官可以自己 google。
使用 math 模块 math 模块是标准库中的,所以不用安装,可以直接使用。使用方法是:

  1. <span style="color: #666600;">>>></span> <span style="color: #000088;">import</span><span style="color: #000000;"> math</span>

用 import 就将 math 模块引用过来了,下面就可以使用这个模块提供的工具了。比如,要得到圆周率:

  1. <span style="color: #666600;">>>></span><span style="color: #000000;"> math</span><span style="color: #666600;">.</span><span style="color: #000000;">pi</span>
  2. <span style="color: #006666;">3.141592653589793</span>

这个模块都能做哪些事情呢?可以用下面的方法看到:

  1. <span style="color: #666600;">>>></span><span style="color: #000000;"> dir</span><span style="color: #666600;">(</span><span style="color: #000000;">math</span><span style="color: #666600;">)</span>
  2. <span style="color: #666600;">[</span><span style="color: #008800;">'__doc__'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'__name__'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'__package__'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'acos'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'acosh'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'asin'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'asinh'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'atan'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'atan2'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'atanh'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'ceil'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'copysign'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'cos'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'cosh'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'degrees'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'e'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'erf'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'erfc'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'exp'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'expm1'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'fabs'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'factorial'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'floor'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'fmod'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'frexp'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'fsum'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'gamma'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'hypot'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'isinf'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'isnan'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'ldexp'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'lgamma'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'log'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'log10'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'log1p'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'modf'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'pi'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'pow'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'radians'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'sin'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'sinh'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'sqrt'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'tan'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'tanh'</span><span style="color: #666600;">,</span> <span style="color: #008800;">'trunc'</span><span style="color: #666600;">]</span>

dir(module)是一个非常有用的指令,可以通过它查看任何模块中所包含的工具。从上面的列表中就可以看出,在 math 模块中,可以计算正 sin(a),cos(a),sqrt(a)......

这些我们称之为函数,也就是在模块 math 中提供了各类计算的函数,比如计算乘方,可以使用 pow 函数。但是,怎么用呢?

Python 是一个非常周到的姑娘,她早就提供了一个命令,让我们来查看每个函数的使用方法。

  1. <span style="color: #666600;">>>></span><span style="color: #000000;"> help</span><span style="color: #666600;">(</span><span style="color: #000000;">math</span><span style="color: #666600;">.</span><span style="color: #000000;">pow</span><span style="color: #666600;">)</span>

在交互模式下输入上面的指令,然后回车,看到下面的信息:

  1. <span style="color: #666600;">`</span><span style="color: #660066;">Help</span><span style="color: #000000;"> on built</span><span style="color: #666600;">-</span><span style="color: #000088;">in</span><span style="color: #000000;"> function pow </span><span style="color: #000088;">in</span><span style="color: #000000;"> module math</span><span style="color: #666600;">:`</span>
  2. <span style="color: #666600;">`</span><span style="color: #000000;">pow</span><span style="color: #666600;">(...)`</span>
  3. <span style="color: #666600;">`</span><span style="color: #000000;">pow</span><span style="color: #666600;">(</span><span style="color: #000000;">x</span><span style="color: #666600;">,</span><span style="color: #000000;"> y</span><span style="color: #666600;">)`</span>
  4. <span style="color: #666600;">`</span><span style="color: #660066;">Return</span><span style="color: #000000;"> x</span><span style="color: #666600;">**</span><span style="color: #000000;">y </span><span style="color: #666600;">(</span><span style="color: #000000;">x to the power of y</span><span style="color: #666600;">).`</span>

这里展示了 math 模块中的 pow 函数的使用方法和相关说明。

第一行意思是说这里是 math 模块的内建函数 pow 帮助信息(所谓 built-in,称之为内建函数,是说这个函数是 Python 默认就有的)
第三行,表示这个函数的参数,有两个,也是函数的调用方式
第四行,是对函数的说明,返回 xy 的结果,并且在后面解释了 xy 的含义。
最后,按 q 键返回到 Python 交互模式
从上面看到了一个额外的信息,就是 pow 函数和 x**y 是等效的,都是计算 x 的 y 次方。

  1. <span style="color: #666600;">`>>>`</span> <span style="color: #666600;">`</span><span style="color: #006666;">4</span><span style="color: #666600;">``*``*``</span><span style="color: #006666;">2</span><span style="color: #666600;">`</span>
  2. <span style="color: #666600;">`</span><span style="color: #006666;">16</span><span style="color: #666600;">`</span>
  3. <span style="color: #666600;">`>>></span><span style="color: #000000;"> math</span><span style="color: #666600;">.``</span><span style="color: #000000;">pow</span><span style="color: #666600;">``(``</span><span style="color: #006666;">4</span><span style="color: #666600;">``,``</span><span style="color: #006666;">2</span><span style="color: #666600;">``)`</span>
  4. <span style="color: #666600;">`</span><span style="color: #006666;">16.0</span><span style="color: #666600;">`</span>
  5. <span style="color: #666600;">`>>>`</span> <span style="color: #666600;">`</span><span style="color: #006666;">4</span><span style="color: #666600;">``*``</span><span style="color: #006666;">2</span><span style="color: #666600;">`</span>
  6. <span style="color: #666600;">`</span><span style="color: #006666;">8</span><span style="color: #666600;">`</span>

特别注意,4*2 和 42 是有很大区别的。

用类似的方法,可以查看 math 模块中的任何一个函数的使用方法。

关于“函数”的问题,在这里不做深入阐述,看管姑且按照自己在数学中所学到去理解。后面会有专门研究函数的章节。
下面是几个常用的 math 模块中函数举例,看官可以结合自己调试的进行比照。

  1. <span style="color: #666600;">`>>></span><span style="color: #000000;"> math</span><span style="color: #666600;">.</span><span style="color: #000000;">sqrt</span><span style="color: #666600;">(``</span><span style="color: #006666;">9</span><span style="color: #666600;">``)`</span>
  2. <span style="color: #666600;">`</span><span style="color: #006666;">3.0</span><span style="color: #666600;">`</span>
  3. <span style="color: #666600;">`>>></span><span style="color: #000000;"> math</span><span style="color: #666600;">.</span><span style="color: #000000;">floor</span><span style="color: #666600;">(``</span><span style="color: #006666;">3.14</span><span style="color: #666600;">``)`</span>
  4. <span style="color: #666600;">`</span><span style="color: #006666;">3.0</span><span style="color: #666600;">`</span>
  5. <span style="color: #666600;">`>>></span><span style="color: #000000;"> math</span><span style="color: #666600;">.</span><span style="color: #000000;">floor</span><span style="color: #666600;">(``</span><span style="color: #006666;">3.92</span><span style="color: #666600;">``)`</span>
  6. <span style="color: #666600;">`</span><span style="color: #006666;">3.0</span><span style="color: #666600;">`</span>
  7. <span style="color: #666600;">`>>></span><span style="color: #000000;"> math</span><span style="color: #666600;">.</span><span style="color: #000000;">fabs</span><span style="color: #666600;">(``-``</span><span style="color: #006666;">2</span><span style="color: #666600;">``)`</span> <span style="color: #666600;">`#</span> <span style="color: #666600;">等价于</span><span style="color: #000000;"> abs</span><span style="color: #666600;">(-</span><span style="color: #006666;">2</span><span style="color: #666600;">)`</span>
  8. <span style="color: #666600;">`</span><span style="color: #006666;">2.0</span><span style="color: #666600;">`</span>
  9. <span style="color: #666600;">`>>>`</span> <span style="color: #666600;">`</span><span style="color: #000000;">abs</span><span style="color: #666600;">``(``-``</span><span style="color: #006666;">2</span><span style="color: #666600;">``)`</span>
  10. <span style="color: #666600;">`</span><span style="color: #006666;">2</span><span style="color: #666600;">`</span>
  11. <span style="color: #666600;">`>>></span><span style="color: #000000;"> math</span><span style="color: #666600;">.</span><span style="color: #000000;">fmod</span><span style="color: #666600;">(``</span><span style="color: #006666;">5</span><span style="color: #666600;">``,``</span><span style="color: #006666;">3</span><span style="color: #666600;">``)`</span> <span style="color: #666600;">`#</span> <span style="color: #666600;">等价于</span> <span style="color: #006666;">5</span><span style="color: #666600;">%</span><span style="color: #006666;">3</span><span style="color: #666600;">`</span>
  12. <span style="color: #666600;">`</span><span style="color: #006666;">2.0</span><span style="color: #666600;">`</span>
  13. <span style="color: #666600;">`>>>`</span> <span style="color: #666600;">`</span><span style="color: #006666;">5</span><span style="color: #666600;">``%``</span><span style="color: #006666;">3</span><span style="color: #666600;">`</span>
  14. <span style="color: #666600;">`</span><span style="color: #006666;">2</span><span style="color: #666600;">`</span>

几个常见函数 有几个常用的函数,列一下,如果记不住也不要紧,知道有这些就好了,用的时候就 google。

求绝对值

  1. <span style="color: #666600;">`>>>`</span> <span style="color: #666600;">`</span><span style="color: #000000;">abs</span><span style="color: #666600;">``(``</span><span style="color: #006666;">10</span><span style="color: #666600;">``)`</span>
  2. <span style="color: #666600;">`</span><span style="color: #006666;">10</span><span style="color: #666600;">`</span>
  3. <span style="color: #666600;">`>>>`</span> <span style="color: #666600;">`</span><span style="color: #000000;">abs</span><span style="color: #666600;">``(``-``</span><span style="color: #006666;">10</span><span style="color: #666600;">``)`</span>
  4. <span style="color: #666600;">`</span><span style="color: #006666;">10</span><span style="color: #666600;">`</span>
  5. <span style="color: #666600;">`>>>`</span> <span style="color: #666600;">`</span><span style="color: #000000;">abs</span><span style="color: #666600;">``(``-``</span><span style="color: #006666;">1.2</span><span style="color: #666600;">``)`</span>
  6. <span style="color: #666600;">`</span><span style="color: #006666;">1.2</span><span style="color: #666600;">`</span>

四舍五入

  1. <span style="color: #666600;">>>></span><span style="color: #000000;"> round</span><span style="color: #666600;">(</span><span style="color: #006666;">1.234</span><span style="color: #666600;">)</span>
  2. <span style="color: #006666;">1.0</span>
  3. <span style="color: #666600;">>>></span><span style="color: #000000;"> round</span><span style="color: #666600;">(</span><span style="color: #006666;">1.234</span><span style="color: #666600;">,</span><span style="color: #006666;">2</span><span style="color: #666600;">)</span>
  4. <span style="color: #006666;">1.23</span>
  5. <span style="color: #666600;">>>></span> <span style="color: #880000;"># 如果不清楚这个函数的用法,可以使用下面方法看帮助信息</span>
  6. <span style="color: #666600;">>>></span><span style="color: #000000;"> help</span><span style="color: #666600;">(</span><span style="color: #000000;">round</span><span style="color: #666600;">)</span>
  1. <span style="color: #666600;">`</span><span style="color: #660066;">Help</span><span style="color: #000000;"> on built</span><span style="color: #666600;">-</span><span style="color: #000088;">in</span><span style="color: #000000;"> function round </span><span style="color: #000088;">in</span><span style="color: #000000;"> module __builtin__</span><span style="color: #666600;">:`</span>
  2. <span style="color: #666600;">`</span><span style="color: #000000;">round</span><span style="color: #666600;">(...)`</span>
  3. <span style="color: #666600;">`</span><span style="color: #000000;">round</span><span style="color: #666600;">(</span><span style="color: #000000;">number</span><span style="color: #666600;">[,</span><span style="color: #000000;"> ndigits</span><span style="color: #666600;">])</span> <span style="color: #666600;">-></span><span style="color: #000000;"> floating point number</span><span style="color: #666600;">`</span>
  4. <span style="color: #666600;">`</span><span style="color: #660066;">Round</span><span style="color: #000000;"> a number to a given precision </span><span style="color: #000088;">in</span><span style="color: #000000;"> decimal digits </span><span style="color: #666600;">(</span><span style="color: #000000;">default </span><span style="color: #006666;">0</span><span style="color: #000000;"> digits</span><span style="color: #666600;">).`</span>
  5. <span style="color: #666600;">`</span><span style="color: #660066;">This</span><span style="color: #000000;"> always returns a floating point number</span><span style="color: #666600;">.</span> <span style="color: #660066;">Precision</span><span style="color: #000000;"> may be negative</span><span style="color: #666600;">.`</span>

 

 

Python模块学习系列:
Python模块学习 ---- re正则表达式
Python模块学习 ---- hashlib模块
Python模块学习 ---- random模块

Python模块学习 ---- smtplib模块

Python模块学习 ---- glob模块
Python模块学习 ---- logging模块
Python模块学习 ---- zipfile模块

Python模块学习 ---- os模块

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享