math库 方法一览
>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__',
'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil',
'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf',
'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod',
'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose',
'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log',
'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow',
'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh',
'tau', 'trunc']
常用数学常量
>>> math.e
2.718281828459045
>>> math.pi
3.141592653589793
>>> math.tau# 等于2pi,圆的周长与半径之比
6.283185307179586
>>> math.inf# 无穷
inf
>>> math.nan# 不是一个数
nan
常用方法
>>> math.ceil(5.1)# 向上取整
6
>>> math.floor(5.1)# 向下取整
5
>>> abs(-5.0)# 绝对值(abs还能用于复数,fabs则不行)
5.0
>>> math.fabs(-5.0)# 绝对值
5.0
>>> 5 % 2# 取模(处理整数首选)
1
>>> math.fmod(5.0,2.0)# 取模(处理浮点数首选)
1.0
>>> math.modf(3.14)# 返回 x 的小数和整数部分,两者都为同符号的浮点数
(0.14000000000000012, 3.0)
----------------------------------------------------------------
>>> 10 ** 2# 幂运算(用于整数)
100
>>> pow(10,2)# 幂运算(用于整数)
100
>>> math.pow(10,2)# 幂运算(用于浮点数)
100.0
>>> math.sqrt(9)# 平方根
3.0
>>> math.exp(1)# e的x次幂,通常比 math.e ** x 或 pow(math.e, x) 更精确
2.718281828459045
>>> math.log(100,10)#返回100以10为底的对数(第二个参数默认为e)
2.0
----------------------------------------------------------------
>>> math.hypot(3,4)#欧几里德范数,sqrt(x*x + y*y),原点到(x,y)的向量长度
5.0
实用方法
>>> math.factorial(3)# 阶乘 3!
6
>>> sum([0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1])
0.9999999999999999
#对迭代器中的元素精确求和,返回精确浮点值
#(通过跟踪多个中间部分和来避免精度损失)
>>> math.fsum([0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1])
1.0
>>> math.gcd(10,15)# 最大公约数
5
#两个数之积=最小公倍数*最大公约数
>>> math.comb(4,2)#排列数C(4,2)(下4上2)
6
>>> math.perm(4,2)# 组合数A(4,2)(下4上2)
12
三角函数
通常三角函数的计算都使用弧度值
>>> math.radians(180)# 角度转弧度
3.141592653589793
>>> math.degrees(math.pi)# 弧度转角度
180.0
>>> math.pi/6
0.5235987755982988
>>> math.sin(math.pi/6)# 正切
0.49999999999999994
>>> math.asin(0.5)# 反正切
0.5235987755982989