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中 ? : 三元表达式的使用介绍
Oct 09 Python
编写Python脚本来获取mp3文件tag信息的教程
May 04 Python
python 读取文本文件的行数据,文件.splitlines()的方法
Jul 12 Python
使用11行Python代码盗取了室友的U盘内容
Oct 23 Python
python实现简单名片管理系统
Nov 30 Python
centos 安装Python3 及对应的pip教程详解
Jun 28 Python
python实现图片压缩代码实例
Aug 12 Python
python求质数列表的例子
Nov 24 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 Python
Python实现Kerberos用户的增删改查操作
Dec 14 Python
关于python中模块和重载的问题
Nov 02 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
python进阶教程之模块(module)介绍
2014/08/30 Python
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
J2EE面试题集锦(附答案)
2013/08/16 面试题
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
表彰大会策划方案
2014/05/13 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
小学元宵节活动总结
2015/02/06 职场文书
商务代表岗位职责
2015/02/15 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android