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 11 Python
Python制作CSDN免积分下载器
Mar 10 Python
python笔记:mysql、redis操作方法
Jun 28 Python
Django视图和URL配置详解
Jan 31 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 Python
python3中eval函数用法使用简介
Aug 02 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 Python
python编写猜数字小游戏
Oct 06 Python
python django中8000端口被占用的解决
Dec 17 Python
keras.utils.to_categorical和one hot格式解析
Jul 02 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
Javascript中Eval函数的使用说明
2008/10/11 Javascript
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python 数据的清理行为实例详解
2017/07/12 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
《我要的是葫芦》教学反思
2014/02/23 职场文书
一岗双责责任书
2014/04/15 职场文书
农村党支部书记党群众路线四风问题整改措施
2014/09/26 职场文书
大学生就业意向书
2015/05/11 职场文书
刑事辩护词范文
2015/05/21 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
浅谈redis整数集为什么不能降级
2021/07/25 Redis