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 31 Python
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
Python numpy生成矩阵、串联矩阵代码分享
Dec 04 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
python3.7 的新特性详解
Jul 25 Python
python实现飞机大战小游戏
Nov 08 Python
使用python模拟高斯分布例子
Dec 09 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
浅谈tensorflow 中tf.concat()的使用
Feb 07 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
Python DES加密实现原理及实例解析
Jul 17 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设置一边执行一边输出结果的代码
2013/09/30 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
javascript天然的迭代器
2010/10/29 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
python根据出生日期返回年龄的方法
2015/03/26 Python
python pandas修改列属性的方法详解
2018/06/09 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
python爬虫基础知识点整理
2020/06/02 Python
serialVersionUID具有什么样的特征
2014/02/20 面试题
前台接待的工作职责
2013/11/21 职场文书
高中军训感言400字
2014/02/24 职场文书
人事部专员岗位职责
2014/03/04 职场文书
环保倡议书300字
2014/05/15 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
反邪教观后感
2015/06/11 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
班级联欢会主持词
2015/07/03 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
Django程序的优化技巧
2021/04/29 Python
python3 字符串str和bytes相互转换
2022/03/23 Python