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 05 Python
Python实现全局变量的两个解决方法
Jul 03 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
python实现的自动发送消息功能详解
Aug 15 Python
django 实现celery动态设置周期任务执行时间
Nov 19 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
Python中的Cookie模块如何使用
Jun 04 Python
python实现canny边缘检测
Sep 14 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 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
PHP开发负载均衡指南
2010/07/17 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
python模块常用用法实例详解
2019/10/17 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
Python基于WordCloud制作词云图
2019/11/29 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
机电一体化大学生求职信
2013/11/08 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
转学证明范本
2015/06/19 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python