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实现系统状态监测和故障转移实例方法
Nov 18 Python
使用python实现strcmp函数功能示例
Mar 25 Python
Python的内存泄漏及gc模块的使用分析
Jul 16 Python
Python中的面向对象编程详解(下)
Apr 13 Python
python 使用get_argument获取url query参数
Apr 28 Python
Python OpenCV 直方图的计算与显示的方法示例
Feb 08 Python
python获取Pandas列名的几种方法
Aug 07 Python
python tornado修改log输出方式
Nov 18 Python
详解python logging日志传输
Jul 01 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
Django限制API访问频率常用方法解析
Oct 12 Python
python 元组和列表的区别
Dec 30 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
Protoss兵种介绍
2020/03/14 星际争霸
PHP动态图像的创建
2006/10/09 PHP
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
javascript alert乱码的解决方法
2013/11/05 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
大学生找工作推荐信范文
2013/11/28 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
安全施工标语
2014/06/07 职场文书
大学迎新生标语
2014/10/06 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
任命书怎么写
2015/03/02 职场文书
何玥事迹观后感
2015/06/16 职场文书
安全生产协议书
2016/03/22 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL