首页 > 编程语言 >【Python快速上手(三十四)】- Python math 模块

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

时间:2024-05-30 22:29:57浏览次数:23  
标签:输出 函数 Python 计算 三十四 print pi 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 模块的使用方法,可以在各种科学计算和工程应用中得心应手。

标签:输出,函数,Python,计算,三十四,print,pi,math
From: https://blog.csdn.net/qq_38641481/article/details/139282622

相关文章

  • 数据分享|python分类预测职员离职:逻辑回归、梯度提升、随机森林、XGB、CatBoost、LGB
    全文链接:https://tecdat.cn/?p=34434原文出处:拓端数据部落公众号分析师:ShilinChen离职率是企业保留人才能力的体现。分析预测职员是否有离职趋向有利于企业的人才管理,提升组织职员的心理健康,从而更有利于企业未来的发展。解决方案任务/目标采用分类这一方法构建6种模型对职......
  • Python实训的心路历程——第4天
    时间过得好快,转眼就第四天了,今天还是接着做界面,并往里面添加内容。========================================一天又过去了,但是每天都感觉自己成长了好多呢,哈哈来汇总一下今天的工作和收获今天把界面和一些基础的功能写完了,程序能正常跑了,可以处理实时摄像头、视频、图片三种......
  • Python信贷风控模型:梯度提升Adaboost,XGBoost,SGD, GBOOST, SVC,随机森林, KNN预测金
    原文链接:http://tecdat.cn/?p=26184 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于信贷风控模型的研究报告,包括一些图形和统计输出。在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何......
  • Python selenium webdriver
    元素定位第一步,导入selenium模块的webdrivier包importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy窗口最大化driver=maximize_window()第二步,调用webdriver包的Chrome类,返回chrome浏览器对象driver=webdriver.Chrome()第三步,如使用......
  • python连接数据库
    一#删除数据库importpymysqlmydb=pymysql.connect(host="localhost",user="root",password="000000",database="my_db")mycursor=mydb.cursor()sql="DROPDATABASEIFEXISTSmy_db"mycursor.execute(sql)m......
  • 「Python魔法药剂:列表推导式的秘密配方大公开!」(一)
    嗨,我是阿佑,最近给大家打开了python操作数据库的大门,今天阿佑将为你揭开列表推导式这个秘密配方的神秘面纱。通过一系列生动有趣的案例和深入浅出的解释,阿佑将带你领略列表推导式的无穷魅力。准备好了吗?让我们一起调配出最强大的编程药剂,让你的代码魔法无人能敌!文章目录......
  • 「Python魔法药剂:列表推导式的秘密配方大公开!」(二)
    嗨,我是阿佑,上一篇给大家讲了《Python魔法药剂——列表推导式(一)》,今天给大家解锁剩下的全部内容!在Python编程的世界中,列表推导式就是那个能让你脱颖而出的秘籍。但如何掌握它,如何运用它解决实际问题?今天阿佑将为你揭晓答案。阿佑将带你一步步深入了解列表推导式的高级......
  • 「异步魔法:Python数据库交互的革命」(二)
    哈喽,我是阿佑,上篇文章带领了大家跨入的异步魔法的大门——Python数据库交互,一场魔法与技术的奇幻之旅!从基础概念到DB-API,再到ORM的高级魔法,我们一步步揭开了数据库操作的神秘面纱。SQLAlchemy和DjangoORM让我们的数据库操作变得强大而灵活。现在,让我们迈向异步编程的新世......
  • 「异步魔法:Python数据库交互的革命」(一)
    Hi,我是阿佑,今天将和大家一块打开异步魔法的大门,进入Python异步编程的神秘领域,学习如何同时施展多个咒语而不需等待。了解asyncio的魔力,掌握AsyncSQLAlchemy和Tortoise-ORM的秘密,让你的数据库操作快如闪电!文章目录Python进阶之数据库交互详解1.引言数据库在现代应用......
  • Python3 笔记:三种取整方式
    取整方式包括向下取整、四舍五入取整、向上取整等。1、向下取整:向下取整很简单,就是去掉小数部分,直接使用int()函数即可。print(int(1.9))#运行结果:1print(int(1.1)) #运行结果:1print(int(1.5)) #运行结果:12、四舍五入取整:四舍五入取整用到的是round()函数。格式:rou......