python math模块的基本使用教程


Posted in Python onJanuary 16, 2021

what's the math 模块

Python math 模块提供了许多对浮点数的数学运算函数。需要注意的是,这些函数一般是对平台 C 库中同名函数的简单封装, 所以一般情况下, 不同平台下计算的结果可能稍微地有所不同, 有时候甚至有很大出入。

主要功能有:

  • 幂数:幂次方、平方根
  • 对数:2、10、e相关的对数操作
  • 圆相关:π、弧度与角度的转换
  • 三角函数:正三角函数、反三角函数
  • 其他常用:小数的整数部分、向上取整、向下取整、两个数的最大公约数、取余数... 

幂数

幂与平方根

# pow(x, y):返回x的y次方
print(math.pow(2, 4)) # 2**4

# ldexp(x, i):返回x*(2**i)的值
print(math.ldexp(5, 2)) # 5*(2**2)=20.0

# sqrt(x):求x的平方根
print(math.sqrt(16)) # 4.0

# factorial(x):取x的阶乘的值
print(math.factorial(5)) # 5*4*3*2*1 # 120

# hypot(x, y):得到(x**2+y**2)的平方根
print(math.hypot(3, 4)) # 5

常数e相关

import math

# 常数e
math.e # 2.718281828459045

# exp(x):返回常数e的x次方
math.exp(2) # 7.38905609893065,相当于math.e**2

# expm1:返回常数e的x次方的值减1
math.expm1(1) # 1.718281828459045,相当于math.exp(1) - 1

对数

# log2(x):返回x的基2对数
print(math.log2(128)) # 7

# log10(x):返回x的以10为底的对数
print(math.log10(100)) # 2

# log(x, base):返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)
print(math.log(256, 4)) # 4

# log1p(x)::返回x+1的自然对数(基数为e)的值
print(math.log1p(5))

圆相关

# pi:常数π,圆周率
print(math.pi) # 3.141592653589793

angle = 30 # 30度
# radians:把角度x转换成弧度
print(math.radians(angle)) # 0.5235987755982988
print(30*math.pi/180) # 效果相同

# degrees:把x从弧度转换成角度
temp = math.radians(angle)
print(math.degrees(temp)) # 29.999999999999996

三角函数

sin、cos、tan

math 模块对正三角函数的计算,变量是弧度,所以在计算时需要先将角度转换为弧度

angle = 30 # 30度
radian = math.radians(angle) # 角度转换成弧度
print(math.sin(radian))
print(math.cos(radian))
print(math.tan(radian))

asin和acos和atan

math 模块对反三角函数的计算,返回值是弧度

h = math.asin(0.5) # sin(30) = 0.5
print(math.degrees(h)) # 30.000000000000004

h = math.acos(0.5) # cos(60) = 0.5
print(math.degrees(h)) # 60.00000000000001


h = math.atan(1) # tan(45) = 1
print(math.degrees(h)) # 45.0

sinh和cosh和tanh,asinh和acosh和atanh

双曲正弦、余弦、正切,反双曲正弦、余弦、正切

其他

# trunc(x):返回x的整数部分
print(math.trunc(8.3)) # 8

# ceil(x):取大于等于x的最小的整数值,如果x是一个整数,则返回x
print(math.ceil(10.2)) # 11

# floor(x):取小于等于x的最大的整数值,如果x是一个整数,则返回自身
print(math.floor(15.3)) # 15

# fabs(x):返回x的绝对值
print(math.fabs(-13)) # 13.0

# modf(x):返回由x的小数部分和整数部分组成的元组
print(math.modf(132.333)) # (0.3329999999999984, 132.0)

# copysign(x, y):把y的正负号加到x前面,可以使用0
print(math.copysign(10 ,-15)) # -10.0

# fmod(x, y):得到x/y的余数,其值是一个浮点数
print(math.fmod(15, 2)) # 1.0

# gcd(x, y):返回x和y的最大公约数
print(math.gcd(8, 100)) # 4

# frexp(x):返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围
print(math.frexp(10))

# fsum(x):对迭代器里的每个元素进行求和操作
print(math.fsum([1, 2, 3, 4])) # 10.0

# isfinite(x):如果x是正无穷大或负无穷大,则返回True,否则返回False
#
# isinf(x):如果x是正无穷大或负无穷大,则返回True,否则返回False
#
# isnan(x):如果x不是数字True,否则返回False
print(math.isnan(1.222))

进阶应用

计算2个坐标点的距离

import math
 
x1 = 0
y1 = 20
x2 = 12
y2 = 0

p1 = (x1, y1)
p2 = (x2, y2)

result = math.sqrt(math.pow(x1 - x2, 2) +math.pow(y1 - y2, 2))

以上就是python math模块的基本使用教程的详细内容,更多关于python math模块的使用的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python多进程操作实例
Nov 21 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
Sep 21 Python
python用Pygal如何生成漂亮的SVG图像详解
Feb 10 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
python高级特性和高阶函数及使用详解
Oct 17 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
Python如何定义接口和抽象类
Jul 28 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
详解Python模块化编程与装饰器
Jan 16 #Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 #Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 #Python
python制作抽奖程序代码详解
Jan 15 #Python
python中PyQuery库用法分享
Jan 15 #Python
python中pdb模块实例用法
Jan 15 #Python
python实现马丁策略的实例详解
Jan 15 #Python
You might like
老照片 - 几十年前的收音机与人
2021/03/02 无线电
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
Bootstrap基础学习
2015/06/16 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
轮播的简单实现方法
2016/07/28 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python和C语言混合编程实例
2014/06/04 Python
Python的高级Git库 Gittle
2014/09/22 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
python matplotlib库绘制条形图练习题
2019/08/10 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
耐克中国官方商城:Nike中国
2018/10/18 全球购物
什么是反射
2012/03/17 面试题
人力资源管理系自荐信
2014/05/31 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
预备党员考察意见范文
2015/06/01 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python