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的subprocess模块总结
Nov 07 Python
详解Django中的过滤器
Jul 16 Python
Python编写登陆接口的方法
Jul 10 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
python3使用matplotlib绘制条形图
Mar 25 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
Python抓包程序mitmproxy安装和使用过程图解
Mar 02 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 Python
Python实现科学占卜 让视频自动打码
Apr 09 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
PHP 批量删除 sql语句
2009/06/05 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
python将txt文件读取为字典的示例
2018/12/22 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
大学生标准推荐信范文
2013/11/25 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
竞赛口号大全
2014/06/16 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
公务员考察材料范文
2014/12/23 职场文书
二年级学生期末评语
2014/12/26 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
员工升职自我评价
2019/03/26 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python