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 相关文章推荐
Python3.x中自定义比较函数
Apr 24 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
python支持多继承吗
Jun 19 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
如何在scrapy中捕获并处理各种异常
Sep 28 Python
Python进度条的使用
May 17 Python
Python集合的基础操作
Nov 01 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
php curl的深入解析
2013/06/02 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
javascript 动态添加表格行
2006/06/22 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
js 走马灯简单实例
2013/11/21 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
教师队伍管理制度
2014/01/14 职场文书
申请吧主发表的感言
2015/08/03 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
nginx安装以及配置的详细过程记录
2021/09/15 Servers
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python