» Python快速入门 » 4. 常用模块篇 » 4.4 math 数学

math 数学

math 模块提供 C 标准中定义的数学函数。

数论相关函数

import math

math.ceil(5.8) # 6

ceil(x) 返回 x 的上限,即大于或等于 x 的最小整数。

math.floor(5.8) # 5

floor(x) 返回 x 的下限,即小于或等于 x 的最大整数。

math.comb(6, 2) # 15

comb 是 combinations 的缩写。 comb(n, k) 返回从 n 个元素中无重复且无序地选择 k 个元素的方法数。

k <= n 时,计算结果为 n! / (k! * (n - k)!),当 k > n 时,计算结果为零。

math.fabs(-5) # 5.0

fabs(x) 返回 x 的绝对值。

math.factorial(5) # 120

factorial(n) 返回 n 的阶乘。

math.gcd(12, 60, 30) # 6

gcd(*integers) 返回指定整数参数的最大公约数。

math.isclose(5.6, 5.601) # False
math.isclose(5.6, 5.6000000001) # True

isclose(a, b, ...),如果值 a 和 b 接近,则返回 True,否则返回 False。 默认公差为 1e-09,保证两个值在大约 9 位小数内相同。

math.lcm(6, 5, 3) # 30

lcm(*integers) 返回指定整数参数的最小公倍数。

math.perm(6, 2) # 30

perm(n, k) 返回从 n 个元素中有序地选择 k 个元素的方法数。

k <= n 时,计算结果为 n! / (n - k)!,当 k > n 时,计算结果为零。

乘幂和对数函数

# 返回e的x次方,其中e = 2.718281… 是自然对数的底。 
math.exp(5) # 148.4131591025766

# 返回2的x次方。
math.exp2(5) # 32.0

# 只有一个参数时,返回x的自然对数(以e为底)。
math.log(math.e ** 2) # 2.0

# 有两个参数时,返回以给定底数计算的x的对数,即 log(x)/log(base)。
math.log(25, 5) # 2.0

# 返回x的以2为底的对数。
math.log2(8) # 3.0

# 返回x的以10为底的对数。 
math.log10(1000) # 3.0

# 返回x的y次方。 
math.pow(2, 10) # 1024.0

# 返回x的平方根。
math.sqrt(100) # 10.0

三角函数

# 返回x弧度的余弦值。
math.cos(math.pi) # -1.0

# 返回两点p和q之间的欧氏距离。
math.dist((0, 0), (2, 2)) # 2.8284271247461903
# 大致相当于:
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))

# 返回x弧度的正弦值。
math.sin(math.pi/2) # 1.0

# 返回x弧度的正切值。
math.tan(math.pi/4) # 0.9999999999999999, basically 1.0

角度转换

# 将角度x从弧度转换为度。
math.degrees(math.pi) # 180.0

# 将角度x从度转换为弧度。
math.radians(180) # 3.141592653589793

常数

# 数学常数π
math.pi # 3.141592653589793

# 数学常数e
math.e # 2.718281828459045

# 数学常数τ,即2π
math.tau # 6.283185307179586

# 浮点正无穷
math.inf

# 浮点“非数字”(NaN)值
math.nan

# math.nan 不等于任何其他数字值,包括它们自己。
math.nan == math.nan # False

代码挑战

尝试修改编辑器在代码,使其输出答案。

Loading...
> 此处输出代码运行结果
上页
下页