這篇文章主要介紹了pythonr的數(shù)字處理模塊知識(math),需要的朋友可以參考下
1.math簡介
代碼如下:
>>>importmath
>>>dir(math)#這句可查看所有函數(shù)名列表
>>>help(math)#查看具體定義及函數(shù)0原型
2.常用函數(shù)
代碼如下:
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)截斷取整數(shù)部分
isnan(x)判斷是否NaN(notanumber)
degree(x)弧度轉(zhuǎn)角度
radians(x)角度轉(zhuǎn)弧度
另外該模塊定義了兩個常量:
代碼如下:
e=2.718281828459045
pi=3.141592653589793
random
1.簡介
random是用于生成隨機數(shù),我們可以利用它隨機生成數(shù)字或者選擇字符串
代碼如下:
importrandom
2.常用函數(shù)
random.random()
用于生成一個隨機浮點數(shù):range[0.0,1.0)
代碼如下:
>>>importrandom
>>>random.random()
0.999410896951364
random.uniform(a,b)
用于生成一個指定范圍內(nèi)的隨機浮點數(shù),a,b為上下限
只要a!=b,就會生成介于兩者之間的一個浮點數(shù),若a=b,則生成的浮點數(shù)就是a
代碼如下:
>>>random.uniform(10,20)
13.224754825064881
>>>random.uniform(20,10)
14.104410713376437
>>>random.uniform(10,10)
10.0
random.randint(a,b)
用于生成一個指定范圍內(nèi)的整數(shù),a為下限,b為上限,生成的隨機整數(shù)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])
從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個隨機數(shù),基數(shù)缺省值為1
代碼如下:
>>>random.randrange(10,100,5)
95
>>>random.randrange(10,100,5)
45
random.choice(sequence)
從序列中獲取一個隨機元素,參數(shù)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函數(shù)不會修改原有序列
代碼如下:
>>>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.簡介
默認,浮點數(shù)學(xué)缺乏精確性
decimal模塊提供了一個Decimal數(shù)據(jù)類型用于浮點數(shù)計算。相比內(nèi)置的二進制浮點數(shù)實現(xiàn)float這個類型有助于
金融應(yīng)用和其它需要精確十進制表達的場合,
控制精度,
控制舍入以適應(yīng)法律或者規(guī)定要求,
確保十進制數(shù)位精度,或者用戶希望計算結(jié)果與手算相符的場合。
Decimal重現(xiàn)了手工的數(shù)學(xué)運算,這就確保了二進制浮點數(shù)無法精確保有的數(shù)據(jù)精度。高精度使Decimal可以執(zhí)行二進制浮點數(shù)無法進行的模運算和等值測試。
2.使用
代碼如下:
>>>fromdecimalimportDecimal
>>>Decimal('0.1')/Decimal('0.3')
Decimal('0.3333333333333333333333333333')
>>>fromdecimalimportgetcontext
>>>getcontext().prec=4#設(shè)置全局精度
>>>Decimal('0.1')/Decimal('0.3')
Decimal('0.3333')
fractions
分數(shù)類型
構(gòu)造
代碼如下:
>>>fromfractionsimportFraction
>>>Fraction(16,-10)#分子分母
Fraction(-8,5)
>>>Fraction(123)#分子
Fraction(123,1)
>>>Fraction('3/7')#字符串分數(shù)
Fraction(3,7)
>>>Fraction('-.125')#字符串浮點數(shù)
Fraction(-1,8)
>>>Fraction(2.25)#浮點數(shù)
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技術(shù)專欄