这篇文章主要介绍了pythonr的数字处理模块知识(math),需要的朋友可以参考下
1.math简介
代码如下:
>>>importmath
>>>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(notanumber)
degree(x)弧度转角度
radians(x)角度转弧度
另外该模块定义了两个常量:
代码如下:
e=2.718281828459045
pi=3.141592653589793
random
1.简介
random是用于生成随机数,我们可以利用它随机生成数字或者选择字符串
代码如下:
importrandom
2.常用函数
random.random()
用于生成一个随机浮点数:range[0.0,1.0)
代码如下:
>>>importrandom
>>>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(mostrecentcalllast):
……
valueerror:emptyrangeforrandrange()(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.使用
代码如下:
>>>fromdecimalimportdecimal
>>>decimal('0.1')/decimal('0.3')
decimal('0.3333333333333333333333333333')
>>>fromdecimalimportgetcontext
>>>getcontext().prec=4#设置全局精度
>>>decimal('0.1')/decimal('0.3')
decimal('0.3333')
fractions
分数类型
构造
代码如下:
>>>fromfractionsimportfraction
>>>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)
>>>fromdecimalimportdecimal
>>>fraction(decimal('1.1'))#decimal
fraction(11,10)
计算
代码如下:
>>>fromfractionsimportfraction
>>>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)