python基础教程之数字处理(math)模块详解
2014-05-19来源:

这篇文章主要介绍了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)

更多信息请查看IT技术专栏

推荐信息
Baidu
map