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实现的批量下载RFC文档
Mar 10 Python
分享Python文本生成二维码实例
Jan 06 Python
python实现简单socket通信的方法
Apr 19 Python
python实现多线程的两种方式
May 22 Python
python django事务transaction源码分析详解
Mar 17 Python
python 中的list和array的不同之处及转换问题
Mar 13 Python
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
opencv 图像轮廓的实现示例
Jul 08 Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 Python
python Xpath语法的使用
Nov 26 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
无线电的诞生过程
2021/03/01 无线电
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
php绘制圆形的方法
2015/01/24 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
深入理解Node module模块
2018/03/26 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
python安装教程
2018/02/28 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
Python: 传递列表副本方式
2019/12/19 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
办公室主任主任岗位责任制
2014/02/11 职场文书
夜不归宿检讨书
2014/02/25 职场文书
电气工程自动化求职信
2014/03/14 职场文书
2015年预算员工作总结
2015/05/14 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
理想国读书笔记
2015/06/25 职场文书
公司环境卫生管理制度
2015/08/05 职场文书