欢迎大家来到IT世界,在知识的湖畔探索吧!
欢迎大家来到IT世界,在知识的湖畔探索吧!
Python的math模块提供了三角函数,对数等运算,今天我们就来讲一下这个模块。这里只讲解模块操作,对一些数学知识方面的就不做介绍了。
在Python中使用 math 模块之前,需先导入。直接用import math就行。
Math模块主要提供了这些功能:1、数学常量。2、基础数值计算函数。3、三角函数。4、对数和指数函数。5、其他函数
Math里最常用的基础常量有两个,一个是圆周率pi,值约为3.9793。另一个是自然常数e,值约为2.9045。
其他不太常用的特殊常量还有math.tau,值为 2*pi。math.inf :表示正无穷大,前面加个负号就是负无穷大。
math.nan :表示非数,用于表示未定义的运算结果。
数值计算函数
Math的基础数值计算函数有:
math.sqrt(x) :计算 x 的平方根。这里x必须是非负实数,否则抛出 ValueError 异常。所以在实际使用时,要提前判断x是否为非负实数。
print(math.sqrt(25)) # 输出:5.0
# print(math.sqrt(-4)) # 报错:ValueError
math.pow(x, y) :返回 x 的 y 次幂, x 和 y 可为整数或浮点数。当y为0到1之间的小数时,相当于开方。比如math.pow(2, 0.5) 可计算平方根。
print(math.pow(2, 3)) # 2³=8.0
print(math.pow(2, 0.5)) # 平方根≈1.4142
在使用时要注意,当x为0时,y不能为负数。 或者当x为负数时,y不能为小数。否则就会出错。
math.fabs(x) :返回 x 的绝对值,与Python内置 abs() 功能类似,但 math.fabs() 始终返回浮点数, abs() 返回类型与输入一致。如 math.fabs(-3) 结果为 3.0 , abs(负3) 结果为 3 。在进行数值比较或计算误差时,需根据具体需求选择合适的绝对值函数。
print(math.fabs(-3)) # 输出:3.0
print(abs(-3)) # 输出:3(内置函数,返回整数)
math.ceil(x) :向上取整,返回大于或等于 x 的最小整数。如 math.ceil(3.9) 结果为 4 , math.ceil(-2.9) 结果为 -2 。在处理分页、资源分配等问题时,该函数十分有用,例如计算需要的页面数量,若总数据量为 n ,每页显示 m 条数据,则 math.ceil(n / m) 可得到所需页面数。
print(math.ceil(3.1)) # 4.0
print(math.ceil(-2.9)) # -2.0(向正无穷取整)
math.floor(x) :向下取整,返回小于或等于 x 的最大整数。如 math.floor(3.9) 结果为 3 , math.floor(-3.9) 结果为 -4 。常用于计算折扣价格、舍去小数部分等场景。
print(math.floor(3.9)) # 3.0
print(math.floor(-2.1)) # -3.0(向负无穷取整)
math.trunc(x) :截取 x 整数部分,直接去掉小数部分。如 math.trunc(3.9) 结果为 3 , math.trunc(-3.9) 结果为 -3 。
print(math.trunc(3.9)) # 3
print(math.trunc(-2.9)) # -2
7. math.modf(x) :将浮点数 x 拆分为小数和整数部分,返回包含两个元素的元组,两部分符号与 x 相同。如 math.modf(-3.9) 返回 (-0.9, -3.0) 。由于用二进制来表示十进制的浮点数会有精度损失,所以得到的小数可能会有点偏差。
decimal, integer = math.modf(-3.9)
print(decimal, integer) # 输出:(-0.9, -3.0)
三角函数
math.sin(x) :正弦函数。math.cos(x),余弦函数,math.tan(x) 正切函数。这些使用都很方便,但是要注意,math 模块中三角函数的参数和返回值默认使用弧度制,使用角度制时需先转换(转换公式为: 弧度 = 角度 * math.pi / 180 ),或者用math. radians(x)函数转换。比如要计算30度正弦值,需先将30度转换为弧度 30 * math.pi / 180 ,再调用 math.sin() 。
print(math.sin(math.pi/2)) # sin(90°)=1.0
其他还有 math.asin(x) :反正弦函数,math.acos(x) :反余弦函数,math.atan(x) :反正切函数,math.atan2(y, x) :根据 y 和 x 坐标值计算反正切值。
print(math.asin(0.5)) # 30°对应的弧度≈0.5236
print(math.atan2(1, 1)) # 45°对应的弧度≈0.7854
对数和指数函数
math.exp(x) :计算自然常数 e 的 x 次幂。
print(math.exp(1)) # e¹≈2.71828
print(math.exp(2)) # e²≈7.3891
math.log(x, base) :计算 x 的对数。单参数时计算自然对数;传入 x 和 base ,则计算以 base 为底的对数。如 math.log(8, 2) 计算以2为底8的对数。
print(math.log(math.e)) # 1.0
print(math.log(8, 2)) # 以2为底8的对数=3.0
math.log10(x) :计算以10为底的常用对数,等价于 math.log(x, 10) 。
math.log2(x) :计算以2为底的对数, 等价于 math.log(x, 2)
其他函数
math.degrees(x) :将弧度值 x 转换为角度值,公式为 角度 = 弧度 * 180 / math.pi 。
radians = math.pi
degrees = math.degrees(radians) # π弧度=180°
print(degrees) # 180.0
math.radians(x) :将角度值 x 转换为弧度值。公式为: 弧度 = 角度 * math.pi / 180
math.gamma(x) :计算 x 的伽马函数值,在数学分析等领域有重要应用。伽马函数是阶乘在实数和复数域上的扩展,在概率论、统计学等学科中用于计算概率分布、积分等。
math.lgamma(x) :返回 x 的伽马函数的自然对数。在需要避免数值溢出的计算中,使用 math.lgamma(x) 比直接计算 math.gamma(x) 后再取对数更高效和准确。
print(math.gamma(5)) # 4! = 24.0(伽马函数Γ(n)=(n-1)!)
print(math.lgamma(5)) # ln(24)≈3.1781
好了,关于math模块的介绍就到这里,还有什么遗漏要补充的欢迎在评论区留言。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/126905.html