Python中math模块的使用

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。

 

 

 

 

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小斌哥ge

非常感谢,祝你一切顺利。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值