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 实现归并排序算法
Jun 05 Python
基于Python os模块常用命令介绍
Nov 03 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
python遍历文件夹找出文件夹后缀为py的文件方法
Oct 21 Python
pycharm 实现显示project 选项卡的方法
Jan 17 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
pytorch DataLoader的num_workers参数与设置大小详解
May 28 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 mail()函数使用及配置方法
2014/01/14 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
javascript 学习之旅 (3)
2009/02/05 Javascript
页面中js执行顺序
2009/11/09 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
python如何为创建大量实例节省内存
2018/03/20 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
酒店个人培训自我鉴定
2013/12/11 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
2014年学生工作总结
2014/11/20 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
redis限流的实际应用
2021/04/24 Redis