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 01 Python
解密Python中的描述符(descriptor)
Jun 03 Python
NetworkX之Prim算法(实例讲解)
Dec 22 Python
Python标准库shutil用法实例详解
Aug 13 Python
对Python 简单串口收发GUI界面的实例详解
Jun 12 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
Jul 03 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
python序列类型种类详解
Feb 26 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 Python
Python如何获取文件指定行的内容
May 27 Python
pycharm激活方法到2099年(激活流程)
Sep 22 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脚本的10个技巧(2)
2006/10/09 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
告诉大家什么是JSON
2008/06/10 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
python批量提取word内信息
2015/08/09 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
python中re模块知识点总结
2021/01/17 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
物业管理员岗位职责范文
2013/11/25 职场文书
机电一体化自荐信
2013/12/10 职场文书
大学军训通讯稿
2014/01/13 职场文书
个人自我鉴定总结
2014/03/25 职场文书
实验室的标语
2014/06/20 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
护士旷工检讨书
2015/08/15 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android