python基础教程之数字处理(math)模块详解


Posted in Python onMarch 25, 2014

1.math简介

>>> import math
>>>dir(math)          #这句可查看所有函数名列表
>>>help(math)         #查看具体定义及函数0原型

2.常用函数

ceil(x) 取顶
floor(x) 取底
fabs(x) 取绝对值
factorial (x) 阶乘
hypot(x,y)  sqrt(x*x+y*y)
pow(x,y) x的y次方
sqrt(x) 开平方
log(x)
log10(x)
trunc(x)  截断取整数部分
isnan (x)  判断是否NaN(not a number)
degree (x) 弧度转角度
radians(x) 角度转弧度

另外该模块定义了两个常量:

e = 2.718281828459045
pi = 3.141592653589793

random

1.简介

random是用于生成随机数,我们可以利用它随机生成数字或者选择字符串

import random

2.常用函数

random.random()
用于生成一个随机浮点数:range[0.0,1.0)

>>> import random
>>> random.random()
0.999410896951364
random.uniform(a,b)

用于生成一个指定范围内的随机浮点数,a,b为上下限

只要a!=b,就会生成介于两者之间的一个浮点数,若a=b,则生成的浮点数就是a

>>> random.uniform(10,20)
13.224754825064881
>>> random.uniform(20,10)
14.104410713376437
>>> random.uniform(10,10)
10.0

random.randint(a,b)
用于生成一个指定范围内的整数,a为下限,b为上限,生成的随机整数a<=n<=b;

若a=b,则n=a;若a>b,报错

>>> random.uniform(10,10)
10.0
>>> random.randint(10,20)
15
>>> random.randint(10,10)
10
>>> random.randint(20,10)
Traceback (most recent call last):
……
ValueError: empty range for randrange() (20,11, -9)

random.randrange([start], stop, [,step])
从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

>>> random.randrange(10,100,5)
95
>>> random.randrange(10,100,5)
45

random.choice(sequence)
从序列中获取一个随机元素,参数sequence表示一个有序类型,并不是一种特定类型,泛指list,tuple,字符串等

>>> random.choice([1,2,3,4])
1
>>> random.choice([1,2,3,4])
3
>>> random.choice('hello')
'e'

random.shuffle(x[, random])
用于将一个列表中的元素打乱

>>> a = [1,2,3,4,5]
>>> random.shuffle(a)
>>> a
[4, 5, 2, 1, 3]
>>> random.shuffle(a)
>>> a
[3, 2, 5, 1, 4]

random.sample(sequence, k)
从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列

>>> a = [1,2,3,4,5]
>>> random.sample(a,3)
[1, 4, 5]
>>> random.sample(a,3)
[1, 2, 5]
>>> a
[1, 2, 3, 4, 5]

decimal

1.简介

默认,浮点数学缺乏精确性

decimal 模块提供了一个 Decimal 数据类型用于浮点数计算。相比内置的二进制浮点数实现 float这个类型有助于

金融应用和其它需要精确十进制表达的场合,
控制精度,
控制舍入以适应法律或者规定要求,
确保十进制数位精度,或者用户希望计算结果与手算相符的场合。
Decimal 重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。 高精度使 Decimal 可以执行二进制浮点数无法进行的模运算和等值测试。

2.使用

>>> from decimal import Decimal
>>> Decimal('0.1') / Decimal('0.3')
Decimal('0.3333333333333333333333333333')
>>> from decimal import getcontext
>>> getcontext().prec = 4 #设置全局精度
>>> Decimal('0.1') / Decimal('0.3')
Decimal('0.3333')   

fractions
分数类型

构造

>>> from fractions import Fraction
>>> Fraction(16, -10)  #分子分母
Fraction(-8, 5)
>>> Fraction(123)   #分子
Fraction(123, 1)
>>> Fraction('3/7')   #字符串分数
Fraction(3, 7)
>>> Fraction('-.125')  #字符串浮点数
Fraction(-1, 8)
>>> Fraction(2.25)  #浮点数
Fraction(9, 4)
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1')) #Decimal
Fraction(11, 10)

计算

>>> from fractions import Fraction
>>> a = Fraction(1,2)
>>> a
Fraction(1, 2)
>>> b = Fraction('1/3')
>>> b
Fraction(1, 3)
>>> a + b
Fraction(5, 6)
>>> a - b
Fraction(1, 6)
Python 相关文章推荐
详解Python中的多线程编程
Apr 09 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
Python实现将HTML转成PDF的方法分析
May 04 Python
Python使用正则表达式分割字符串的实现方法
Jul 16 Python
django foreignkey(外键)的实现
Jul 29 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
Django查询优化及ajax编码格式原理解析
Mar 25 Python
python 的topk算法实例
Apr 02 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
Python自动化办公Excel模块openpyxl原理及用法解析
Nov 05 Python
python操作摄像头截图实现远程监控的例子
Mar 25 #Python
python基础教程之字典操作详解
Mar 25 #Python
python基础教程之元组操作使用详解
Mar 25 #Python
python基础教程之简单入门说明(变量和控制语言使用方法)
Mar 25 #Python
python使用循环实现批量创建文件夹示例
Mar 25 #Python
python实现图片批量剪切示例
Mar 25 #Python
使用python实现strcmp函数功能示例
Mar 25 #Python
You might like
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
js实现鼠标跟随运动效果
2020/08/02 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
python 内置函数filter
2017/06/01 Python
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
在python中做正态性检验示例
2019/12/09 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
幼儿园老师辞职信
2014/01/20 职场文书
保护环境倡议书
2014/04/14 职场文书
科学发展观活动总结
2014/08/28 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
个人委托函范文
2015/01/29 职场文书
项目负责人岗位职责
2015/02/15 职场文书
商业计划书之服装
2019/09/09 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python