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 相关文章推荐
Windows下搭建python开发环境详细步骤
Jul 20 Python
使用python装饰器计算函数运行时间的实例
Apr 21 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
python中下标和切片的使用方法解析
Aug 27 Python
python银行系统实现源码
Oct 25 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
Python Tkinter模块 GUI 可视化实例
Nov 20 Python
python获取引用对象的个数方式
Dec 20 Python
pytorch 数据处理:定义自己的数据集合实例
Dec 31 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
python爬虫今日热榜数据到txt文件的源码
Feb 23 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 执行系统命令的方法
2009/07/07 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
ECMAScript 基础知识
2007/06/29 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
jQuery示例收集
2010/11/05 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
Javascript基于OOP实实现探测器功能代码实例
2020/08/26 Javascript
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
pycharm实现猜数游戏
2020/12/07 Python
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
社会学专业求职信
2014/02/24 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
体育个人工作总结
2015/02/09 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
Python OpenCV形态学运算示例详解
2022/04/07 Python
Consul在linux环境的集群部署
2022/04/08 Servers