写代码过程中,我们永远离不开数学计算:取绝对值、四舍五入、开方、幂运算、调取数学常数等。
如果全部自己手写,代码难写会出错不说,关键你不一定写得来。
Python 自带的 math 库,内置大量封装好的数学函数,能够解决绝大多数的基础运算方面的问题。

首先,不多说,math 已经解释了一切,它跟数学有关。由于是 Python 原生内置的标准库,因此不需要使用 pip 安装,直接 import 即可:
import math这个库有几个特点:
只支持浮点数、整数,不支持复数(需使用 cmath 库),返回结果默认是浮点数 基础的计算函数底层由 C 语言编写,计算速度很快,至少比你自己用代码手搓快得多
数学常数是很多计算中的常客,例如计算圆面积时的 π,表示数据极值的无穷大 ∞。
如果我们都手动定义这些常数,那么在很多情况下都会产生因精度问题导致的巨大误差。
此时,我们就可以直接使用 math 自带的常数:
math.pi | ||
math.e | ||
math.inf | ||
-math.inf | ||
math.nan | ||
math.tau |
💡 注意:NaN 表示不是一个数字,这在学习 numpy 和 pandas 的时候是很常见的数据类型。
import mathprint("圆周率:", math.pi)print("自然常数:", math.e)print("无穷大:", math.inf)# Output:# 圆周率:3.141592653589793# 自然常数:2.718281828459045# 无穷大:inffabs()python 自带了一个 abs() 内置函数用于计算绝对值,不需要调库。fabs() 与之的区别在于它只返回浮点数类型的绝对值。
import mathnum = -99print(math.fabs(num))# Output: 99.0pow()pow() 传入两个参数,底数和指数:
import math# pow(底数,指数)print(math.pow(2, 3))# Output: 8.0sqrt(), pow()求根一方面是我们常见的平方根,即:
通常来说使用求平方根函数 sqrt() 即可:
import mathprint(math.sqrt(9))# Output: 3.0然而,这并不足够,如果我们想计算立方根呢? 这时,就要使用转换的思维。
我们知道:
也就是说,求根运算是一种特殊的幂运算。那么,求 次方根就可以写成求 方幂:
import mathprint(math.pow(27, 1 / 3))# Output: 3.0print(math.pow(100, 1 / 2))# Output: 10.0往期回顾: