当前位置: 首页 > news >正文

Python中的数值运算函数及math库详解

文章目录

  • Python中的数值运算函数及math库详解
    • 一、内置数值运算函数
      • 1. 基本数值运算函数
      • 2. 类型转换函数
      • 3. 进制转换函数
    • 二、math库中的数学常数
    • 三、math库常用数学函数
      • 1. 数论与表示函数
      • 2. 幂函数与对数函数
      • 3. 三角函数
      • 4. 角度转换
      • 5. 双曲函数
      • 6. 特殊函数
    • 四、实际应用示例
      • 1. 计算圆的面积和周长
      • 2. 解二次方程
      • 3. 计算两点间距离
      • 4. 统计函数(使用math.fsum提高精度)
    • 五、注意事项
    • 六、性能比较示例

Python中的数值运算函数及math库详解

一、内置数值运算函数

1. 基本数值运算函数

abs(x)       # 返回x的绝对值
pow(x, y)    # 返回x的y次幂,等价于x**y
round(x[, n]) # 返回x的四舍五入值,n表示小数位数
divmod(a, b) # 返回商和余数的元组(a//b, a%b)

2. 类型转换函数

int(x)       # 转换为整数
float(x)     # 转换为浮点数
complex(re, im) # 创建复数

3. 进制转换函数

bin(x)       # 整数转二进制字符串
oct(x)       # 整数转八进制字符串
hex(x)       # 整数转十六进制字符串

二、math库中的数学常数

import math

math.pi      # 圆周率π ≈ 3.141592653589793
math.e       # 自然常数e ≈ 2.718281828459045
math.tau     # 2π ≈ 6.283185307179586 (Python 3.6+)
math.inf     # 正无穷大
math.nan     # 非数字值(Not a Number)

三、math库常用数学函数

1. 数论与表示函数

math.ceil(x)     # 向上取整
math.floor(x)    # 向下取整
math.trunc(x)    # 截断小数部分
math.fabs(x)     # 浮点数绝对值
math.factorial(x) # 阶乘x!
math.gcd(a, b)   # 最大公约数(Python 3.5+)
math.isfinite(x) # 判断x是否为有限数
math.isinf(x)    # 判断x是否为无穷大
math.isnan(x)    # 判断x是否为NaN

2. 幂函数与对数函数

math.exp(x)      # e的x次幂
math.expm1(x)    # e的x次幂减1,精度更高
math.log(x[, base]) # 对数函数,base默认为e
math.log1p(x)    # ln(1+x),x接近0时更精确
math.log2(x)     # 以2为底的对数(Python 3.3+)
math.log10(x)    # 以10为底的对数
math.pow(x, y)   # x的y次幂(结果为浮点数)
math.sqrt(x)     # 平方根

3. 三角函数

math.sin(x)     # 正弦(弧度制)
math.cos(x)     # 余弦(弧度制)
math.tan(x)     # 正切(弧度制)
math.asin(x)    # 反正弦
math.acos(x)    # 反余弦
math.atan(x)    # 反正切
math.atan2(y, x) # y/x的反正切
math.hypot(x, y) # 欧几里得范数√(x² + y²)

4. 角度转换

math.degrees(x) # 弧度转角度
math.radians(x) # 角度转弧度

5. 双曲函数

math.sinh(x)    # 双曲正弦
math.cosh(x)    # 双曲余弦
math.tanh(x)    # 双曲正切
math.asinh(x)   # 反双曲正弦
math.acosh(x)   # 反双曲余弦
math.atanh(x)   # 反双曲正切

6. 特殊函数

math.erf(x)     # 误差函数
math.erfc(x)    # 互补误差函数
math.gamma(x)   # Gamma函数
math.lgamma(x)  # Gamma函数的绝对值的自然对数

四、实际应用示例

1. 计算圆的面积和周长

import math

radius = 5
area = math.pi * math.pow(radius, 2)
circumference = 2 * math.pi * radius

2. 解二次方程

import math

def solve_quadratic(a, b, c):
    discriminant = b**2 - 4*a*c
    if discriminant < 0:
        return None
    x1 = (-b + math.sqrt(discriminant)) / (2*a)
    x2 = (-b - math.sqrt(discriminant)) / (2*a)
    return x1, x2

3. 计算两点间距离

import math

def distance(p1, p2):
    return math.hypot(p2[0]-p1[0], p2[1]-p1[1])

4. 统计函数(使用math.fsum提高精度)

import math

data = [1.1, 2.2, 3.3, 4.4, 5.5]
total = math.fsum(data)  # 比sum()精度更高

五、注意事项

  1. math模块的函数通常比内置函数更精确,但速度可能稍慢
  2. math模块的函数大多只接受实数参数,复数运算需使用cmath模块
  3. 对于大数运算,考虑使用decimal模块提高精度
  4. 科学计算推荐使用NumPy库,它提供了更丰富的数学函数和数组支持

六、性能比较示例

import math
import timeit

# 比较math.sqrt和**0.5的性能
t1 = timeit.timeit('math.sqrt(100)', setup='import math')
t2 = timeit.timeit('100**0.5')
print(f"math.sqrt: {t1}, **0.5: {t2}")

通过合理选择这些数值运算函数和math库函数,可以高效地完成各种数学计算任务。🐻🐻🐻

相关文章:

  • 【vant 手机端封装表格】
  • C# virtual 和 abstract 详解
  • Android 中如何配置 targetSdk 值
  • 操作系统 4.1-I/O与显示器
  • MySQL 进阶 - 2 ( 15000 字详解)
  • 使用opentelemetry 可观测监控springboot应用的指标、链路实践,使用zipkin展示链路追踪数据,使用grafana展示指标
  • 2025年- H7-Lc114-15.三数之和(双指针)--java版
  • oracle update 原理
  • C++的inline函数
  • 如何用MDM批量配置和管理TV Box(机顶盒)?
  • E8流程多行明细行字符串用I分隔,赋值到主表
  • 记一次api接口出现重复请求的处理过程
  • 使用人工智能大模型腾讯元宝,如何免费快速做高质量的新闻稿?
  • 【 vue + js 】引入图片、base64 编译显示图片
  • 项目日志配置模板示例
  • python的多线程和多进程程序编程
  • 语音识别——根据声波能量、VAD 和 频谱分析实时输出文字
  • 企业数据孤岛如何破
  • Harmony实战之简易计算器
  • AI中的RAG技术:检索增强生成的全面解析
  • 全国商务网站大全/小红书笔记关键词排名优化
  • 国外做多媒体展览的网站/推广普通话内容100字
  • 眉山网站建设公司/培训网站模板
  • 哈尔滨网站建设乙薇/seo项目是什么
  • 怎样做网站平台/广州新闻头条最新消息
  • 怎么做赌钱网站/营销策划机构