您的位置:首页 > 编程语言 > Python开发

python标准库 第五章 数学计算

2017-02-04 15:36 211 查看

数学计算

今天把第五章数学计算看完了,在开始下一章节之间先梳理一下

decimal

构造

十进制用的库吧,主要输入靠
decimal.Decimal()
来构造。

比较有意思的是这个可以通过tuple来构造浮点数

import decimal
t=(1,(1,1),-2)
print decimal.Decimal(t)


则对应的输出为-0.11

tuple第一个位置是符号,0为正,1为负,中间的tuple是所有的位数上的数字,最后一位是10的指数

那么对应这个就是 -11*10*-2

精度

getcontext().prec=i
来控制

至于书中的上下文,局部上下文,不想深究。要用再查。

fractions

关于fraction 印象不多,基于翻译——分数的话也不外乎自动计算分数,或者找近似分数。

创建

import fractions
for i,n in [ (1,2),(2,4),(5,3) ]
f=fractions.Fraction(i,n):
print '%s/%s = %s'%(i,n,f)


运算支持所有标准操作符。

近似值

如果你传入一个浮点数,fraction会生成一个近似的分数

例如
f_pi=fractions.Fraction(str(math.pi))


然后提供一个limit_denominator可以控制分母

f_pi.limit_denominator(1)
则可以将分母控制为1

当然分母不会完全是括号内的数字,但会接近。

random

随机数不多说

生成

random.random()
生成的是0~1的数

random.uniform(a,b)
生成a~b的数

种子

就是
random.seed(a)
设置一下

保存状态

这个不是很懂,粗略的看了下,应该是基于
random.getstate()
获取数据,然后用
random.setstate()
来设置。如果以后要用,还是去看下官方文档吧

随机整数

random.randint(a,b)


random.randrange(a,b,step)


在a到b且满足步长的数里面随机选

随机选择和排序和取样

random.choice()


random.shuffle()


random.sample()


示例给了一个模拟抛硬币和模拟发牌的程序,蛮有意思的.

后面一些杂项

比如randomSystem的,要用再说吧,不过

这些库确实很强大

比如可以模拟高斯分布,指数分布。泊松没看到。

math

math库有点多,不过应该都比较好理解

有意思的是
modf()
这个函数

modif(1/2.0)


输出为

(0.5,0.0)


前面小数部分,后面整数部分

后面开根,幂方,三角函数什么的就不写了,反正我也没怎么看。

可以开始看下一部分了……..
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: