目录
Python快速上手(三十四)- Python math 模块
Python math 模块详解
math 模块是Python标准库中用于数学运算的模块,提供了大量的数学函数和常量。本文将详细介绍 math 模块的主要功能,包括基本数学运算、对数和指数运算、三角函数、角度转换、双曲函数、特殊函数、浮点运算辅助函数、常量等。
1. 导入 math 模块
要使用 math 模块,首先需要导入它:
import math
2. 基本数学运算
2.1 绝对值和符号函数
math.fabs(x):返回x的绝对值。
print(math.fabs(-5)) # 输出:5.0
2.2 最大值、最小值、和
math.fsum(iterable):精确计算可迭代对象的和,避免精度丢失。
print(math.fsum([0.1, 0.2, 0.3])) # 输出:0.6
2.3 幂运算和对数
math.pow(x, y):计算x的y次方。
print(math.pow(2, 3)) # 输出:8.0
math.sqrt(x):计算x的平方根。
print(math.sqrt(16)) # 输出:4.0
math.exp(x):计算e的x次方。
print(math.exp(1)) # 输出:2.718281828459045
math.log(x[, base]):计算x的对数,默认以e为底,可以指定底数。
print(math.log(8, 2)) # 输出:3.0
print(math.log(math.e)) # 输出:1.0
math.log10(x):计算x的10为底的对数。
print(math.log10(100)) # 输出:2.0
math.log2(x):计算x的2为底的对数。
print(math.log2(8)) # 输出:3.0
3. 三角函数
3.1 基本三角函数
math.sin(x):计算x的正弦值,x以弧度为单位。
print(math.sin(math.pi / 2)) # 输出:1.0
math.cos(x):计算x的余弦值,x以弧度为单位。
print(math.cos(math.pi)) # 输出:-1.0
math.tan(x):计算x的正切值,x以弧度为单位。
print(math.tan(math.pi / 4)) # 输出:1.0
3.2 反三角函数
math.asin(x):计算x的反正弦值,返回的角度以弧度为单位。
print(math.asin(1)) # 输出:1.5707963267948966 (即 pi/2)
math.acos(x):计算x的反余弦值,返回的角度以弧度为单位。
print(math.acos(-1)) # 输出:3.141592653589793 (即 pi)
math.atan(x):计算x的反正切值,返回的角度以弧度为单位。
print(math.atan(1)) # 输出:0.7853981633974483 (即 pi/4)
math.atan2(y, x):计算y/x的反正切值,返回的角度以弧度为单位。可以处理x为0的情况。
print(math.atan2(1, 1)) # 输出:0.7853981633974483 (即 pi/4)
3.3 角度转换
math.degrees(x):将弧度转换为角度。
print(math.degrees(math.pi)) # 输出:180.0
math.radians(x):将角度转换为弧度。
print(math.radians(180)) # 输出:3.141592653589793
4. 双曲函数
4.1 基本双曲函数
math.sinh(x):计算x的双曲正弦值。
print(math.sinh(1)) # 输出:1.1752011936438014
math.cosh(x):计算x的双曲余弦值。
print(math.cosh(1)) # 输出:1.5430806348152437
math.tanh(x):计算x的双曲正切值。
print(math.tanh(1)) # 输出:0.7615941559557649
4.2 反双曲函数
math.asinh(x):计算x的反双曲正弦值。
print(math.asinh(1)) # 输出:0.881373587019543
math.acosh(x):计算x的反双曲余弦值。
print(math.acosh(2)) # 输出:1.3169578969248166
math.atanh(x):计算x的反双曲正切值。
print(math.atanh(0.5)) # 输出:0.5493061443340548
5. 特殊函数
5.1 Gamma函数和对数Gamma函数
math.gamma(x):计算x的Gamma函数值。
print(math.gamma(5)) # 输出:24.0
math.lgamma(x):计算x的Gamma函数值的自然对数。
print(math.lgamma(5)) # 输出:3.1780538303479458
5.2 Erf和Erfc函数
math.erf(x):计算x的误差函数值。
print(math.erf(1)) # 输出:0.8427007929497148
math.erfc(x):计算x的余误差函数值。
print(math.erfc(1)) # 输出:0.15729920705028513
6. 浮点运算辅助函数
6.1 取整函数
math.ceil(x):返回大于等于x的最小整数。
print(math.ceil(4.2)) # 输出:5
math.floor(x):返回小于等于x的最大整数。
print(math.floor(4.8)) # 输出:4
math.trunc(x):返回x的整数部分,丢弃小数部分。
print(math.trunc(4.8)) # 输出:4
6.2 拆分和组合浮点数
math.modf(x):将x拆分为小数部分和整数部分,返回一个元组。
print(math.modf(4.5)) # 输出:(0.5, 4.0)
math.frexp(x):将x拆分为尾数和指数,返回一个元组。
print(math.frexp(8)) # 输出:(0.5, 4)
math.ldexp(m, e):计算 m * 2**e,即将尾数和指数组合成浮点数。
print(math.ldexp(0.5, 4)) # 输出:8.0
6.3 Copysign函数
math.copysign(x, y):返回具有y符号的x。
print(math.copysign(4, -1)) # 输出:-4.0
6.4 Nextafter函数
math.nextafter(x, y):返回从x移动到y的最小步长。
print(math.nextafter(1, 2)) # 输出:1.0000000000000002
6.5 Ulp函数
math.ulp(x):返回x的最小精度单位。
print(math.ulp(1.0)) # 输出:2.220446049250313e-16
7. 常量
7.1 数学常量
math.pi:圆周率π。
print(math.pi) # 输出:3.141592653589793
math.e:自然常数e。
print(math.e) # 输出:2.718281828459045
7.2 无穷大和NaN
math.inf:正无穷大。
print(math.inf) # 输出:inf
math.nan:非数字(NaN)。
print(math.nan) # 输出:nan
7.3 Tau
math.tau:圆周常数τ,等于2π。
print(math.tau) # 输出:6.283185307179586
8. 实际应用案例
8.1 计算几何图形的面积和周长
8.1.1 计算圆的面积和周长
def circle_area(radius):
return math.pi * math.pow(radius, 2)
def circle_circumference(radius):
return 2 * math.pi * radius
radius = 5
print("Circle Area:", circle_area(radius)) # 输出:78.53981633974483
print("Circle Circumference:", circle_circumference(radius)) # 输出:31.41592653589793
8.1.2 计算三角形的面积
def triangle_area(base, height):
return 0.5 * base * height
base = 10
height = 5
print("Triangle Area:", triangle_area(base, height)) # 输出:25.0
8.2 计算统计学中的标准差
def mean(data):
return math.fsum(data) / len(data)
def variance(data):
m = mean(data)
return math.fsum((x - m) ** 2 for x in data) / len(data)
def standard_deviation(data):
return math.sqrt(variance(data))
data = [2, 4, 4, 4, 5, 5, 7, 9]
print("Standard Deviation:", standard_deviation(data)) # 输出:2.0
8.3 计算复利
def compound_interest(principal, rate, times, years):
return principal * math.pow((1 + rate / times), times * years)
principal = 1000
rate = 0.05
times = 4
years = 5
print("Compound Interest:", compound_interest(principal, rate, times, years)) # 输出:1283.3586785035118
8.4 数值积分
利用梯形法计算定积分:
def trapezoidal_rule(f, a, b, n):
h = (b - a) / n
s = (f(a) + f(b)) / 2
for i in range(1, n):
s += f(a + i * h)
return s * h
def f(x):
return math.sin(x)
a = 0
b = math.pi
n = 1000
print("Integral:", trapezoidal_rule(f, a, b, n)) # 输出:2.0
9. 小结
通过本文,我们详细介绍了Python math 模块的功能和用法,包括基本数学运算、对数和指数运算、三角函数、角度转换、双曲函数、特殊函数、浮点运算辅助函数、常量等。math 模块提供了丰富的数学函数和常量,使得在Python中进行各种数学运算变得简单而高效。无论是在计算几何图形的面积和周长、统计学中的标准差、复利计算还是数值积分等方面,math 模块都能提供有力的支持。通过掌握 math 模块的使用方法,可以在各种科学计算和工程应用中得心应手。
标签:输出,函数,Python,计算,三十四,print,pi,math From: https://blog.csdn.net/qq_38641481/article/details/139282622