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 zip文件 压缩
Dec 24 Python
Python中的super()方法使用简介
Aug 14 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
Python实现两款计算器功能示例
Dec 19 Python
python中abs&amp;map&amp;reduce简介
Feb 20 Python
python远程调用rpc模块xmlrpclib的方法
Jan 11 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 Python
python求绝对值的三种方法小结
Dec 04 Python
keras 特征图可视化实例(中间层)
Jan 24 Python
Python高并发和多线程有什么关系
Nov 14 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 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多用户计数器代码
2007/03/11 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
js自带函数备忘 数组
2006/12/29 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
Python文件操作类操作实例详解
2014/07/11 Python
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
介绍java中初始化块的使用
2012/09/11 面试题
.net工程师笔试题
2012/06/09 面试题
技术学校毕业生求职信分享
2013/12/02 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python