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中for循环和while循环的基本使用方法
Aug 21 Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 Python
python爬取各类文档方法归类汇总
Mar 22 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
May 13 Python
在python里面运用多继承方法详解
Jul 01 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
浅谈Python_Openpyxl使用(最全总结)
Sep 05 Python
使用python去除图片白色像素的实例
Dec 12 Python
Python猴子补丁知识点总结
Jan 05 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
python如何写个俄罗斯方块
Nov 06 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获取当前网址及域名的实现代码
2013/06/23 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
php数据序列化测试实例详解
2017/08/12 PHP
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
document.write的几点使用心得
2014/05/14 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
简单了解什么是神经网络
2017/12/23 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
python 重定向获取真实url的方法
2018/05/11 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
Python玩转Excel的读写改实例
2019/02/22 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
python安装scipy的步骤解析
2019/09/28 Python
Python数据存储之 h5py详解
2019/12/26 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
《七颗钻石》教学反思
2014/02/28 职场文书
病媒生物防治方案
2014/05/13 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
2015年国庆节广播稿
2015/08/19 职场文书