【Python快速上手(三十四)】- Python math 模块

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 模块的使用方法,可以在各种科学计算和工程应用中得心应手。

  • 45
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值