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...
> 此处输出代码运行结果