Python中math模块的使用
Python 的 math 模块实现了许多数学运算函数。
这些函数大部分的返回结果是浮点数,在代码中,浮点数小数点后面的位数是有限的,而二进制表示小数时很有可能会出现无限循环的小数,因此浮点数会有精度损失,不过,大多数情况下这并不影响我们使用。
math模块是Python的内置模块,不需要pip安装,直接导入即可使用。
math 模块中,一种数学运算对应一个函数,在我们使用时非常方便,按需求调用即可。
一、取整运算
# coding=utf-8
import math
# 去掉小数
print(math.floor(6.78))
print(math.trunc(6.78))
# 进一
print(math.ceil(6.78))
运行结果:
6
6
7
floor(x)返回小于x的最大整数,trunc(x)将x的小数部分归0,这两个方法的运算结果是相同的。
ceil(x)返回大于x的最小整数,也可以叫“进一法”。
二、常用数学计算
# 绝对值
print(math.fabs(-77))
# 取余
print(math.fmod(11, 3))
# 求和
print(math.fsum([1, 2, 3, 4, 5, 6, 7]))
print(math.fsum((1, 2, 3, 4, 5, 6, 7)))
# 最大公约数
print(math.gcd(24, 16))
# 勾股定律
print(math.hypot(3, 4))
# n的阶乘
print(math.factorial(4))
运行结果:
77.0
2.0
28.0
28.0
8
5.0
24
fabs(x)返回x的绝对值,结果是一个浮点数。
fmod(x, y)返回x除y后的余数。
fsum(iter)返回可迭代对象中的数据求和的浮点数结果。可迭代对象可以是列表,元组,字典,集合,可迭代对象中的元素必须是数字。对字典进行计算时,是计算键的和,键必须是数字。
gcd(x, y)返回x和y的最大公约数,返回值是整数。
hypot(x, y)返回x平方与y平方求和再开根的数字,这个计算类似勾股定律中根据两条直角边计算斜边。返回结果是浮点数。
factorial(x)返回x的阶乘,返回结果是整数。如果传入值不是正整数则会报错。
三、乘方运算
print(math.e)
# e的多少次方
print(math.exp(2))
# e的多少次方减一
print(math.expm1(2))
# 返回a 乘2的b次方
print(math.ldexp(1, 4))
print(math.pow(2, 5))
运行结果:
2.718281828459045
7.38905609893065
6.38905609893065
16.0
32.0
math.e返回数学常数,自然对数的底数e的值。
exp(x)返回e的x次方。
expm1(x)返回e的x次方减一。
ldexp(x, y)返回x乘2的y次方,结果是浮点数。
pow(x, y)返回x的y次方,结果是浮点数。
四、开方运算
# 开平方根
print(math.sqrt(100))
print(math.log(16, 2))
print(math.log(math.exp(5)))
print(math.log10(100))
print(math.log2(8))
print(math.log1p(math.expm1(3)))
运行结果:
10.0
4.0
5.0
2.0
3.0
3.0
sqrt(x)返回x开平方的结果,结果是浮点数。
log(x, y)返回y为底数,x的对数,如果不指定y, 则默认的底数为自然对数的底数e, 相当于数学中的ln(x),返回结果为浮点数。
log10(x)返回10为底数,x的对数,结果是浮点数。
log2(x)返回2为底数,x的对数,结果是浮点数。
log1p(x)返回e为底数,x+1的对数,相当于ln(x+1),结果是浮点数。
细心的您应该可以发现,开方运算方法与上面的乘方运算方法互为逆运算。
五、三角函数计算
print(math.pi)
print(math.sin(math.pi / 6))
print(math.cos(math.pi / 3))
print(math.tan(math.pi / 4))
# 将弧度制转成数字角度
print(math.degrees(math.pi))
# 反之
print(math.radians(180))
运行结果:
3.141592653589793
0.49999999999999994
0.5000000000000001
0.9999999999999999
180.0
3.141592653589793
math.pi返回圆周率π的值。
sin(x)返回x的sin值,x表示一个角度。
cos(x)返回x的cos值,x表示一个角度。
tan(x)返回x的tan值,x表示一个角度。
degrees(x)将一个弧度制的角度(如2π),转换成0到360度之间的度数值,返回一个浮点数, x是一个弧度制角度。
radians(x)是degrees()的逆运算,将一个度数表示的角度值转换成弧度制的角度(0~2π),x是一个度数数字。
六、其他运算
# 不是数字返回true
print(math.isnan(100))
# 返回是不是无穷大的数
print(math.isfinite(100))
print(math.isinf(100))
运行结果:
False
True
False
isnan(x)返回x是不是数字,不是数字返回True,是数字返回False。
isfinite(x)返回x是不是一个无穷大的数,正或者负无穷,如果不是无穷大返回True,是无穷大返回False。
isinf(x)与isfinite(x)相反,如果不是无穷大返回False,是无穷大返回True。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有