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 装饰器深入理解
Mar 16 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
高效使用Python字典的清单
Apr 04 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
学习python的前途 python挣钱
Feb 27 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
Python2与Python3的区别点整理
Dec 12 Python
logging level级别介绍
Feb 21 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+dbfile开发小型留言本
2006/10/09 PHP
如何使用PHP中的字符串函数
2006/10/09 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
Javascript 实用小技巧
2010/04/07 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
Python 从相对路径下import的方法
2018/12/04 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
精彩的推荐信范文
2013/11/26 职场文书
教师求职信范文分享
2013/12/27 职场文书
职工运动会邀请函
2014/01/19 职场文书
初一科学教学反思
2014/01/27 职场文书
婚礼主持词开场白
2014/03/13 职场文书
同居协议书范本
2014/04/23 职场文书
学雷锋宣传标语
2014/06/25 职场文书
大一新生检讨书
2014/10/29 职场文书
2016年教师节慰问信
2015/12/01 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
vue实现同时设置多个倒计时
2021/05/20 Vue.js