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 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
详解python使用turtle库来画一朵花
Mar 21 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
Django密码存储策略分析
Jan 09 Python
Python面向对象编程基础实例分析
Jan 17 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
django为Form生成的label标签添加class方式
May 20 Python
Python获取指定网段正在使用的IP
Dec 14 Python
Python编程源码报错解决方法总结经验分享
Oct 05 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如何编写易读的代码
2007/07/10 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
php中opendir函数用法实例
2014/11/15 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
react的hooks的用法详解
2020/10/12 Javascript
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
python二叉树遍历的实现方法
2013/11/21 Python
python使用Tkinter显示网络图片的方法
2015/04/24 Python
小小聊天室Python代码实现
2016/08/17 Python
Numpy掩码式数组详解
2018/04/17 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
PyQt5实现简易电子词典
2019/06/25 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
python中setuptools的作用是什么
2020/06/19 Python
python else语句在循环中的运用详解
2020/07/06 Python
Python字符串及文本模式方法详解
2020/09/10 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
通息工程毕业生自荐信
2013/10/16 职场文书
保险公司开门红口号
2014/06/21 职场文书
小学捐书活动总结
2014/07/05 职场文书
2014年科研工作总结
2014/12/03 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL