推薦學習:
math庫是Python提供的內建數學類函數庫,因為複數型別常用於科學計算,一般計算並不常用,因此math庫 不支援 複數型別,僅支援 整數和浮點數運算。
import math
常數 | 說明 | 範例 |
---|---|---|
math.pi | 圓周率 π | >>> math.pi 輸出結果:3.141592653589793 |
math.e | 自然常數e | >>> math.e 輸出結果:2.718281828459045 |
math.inf | 正無窮大,負無窮大為:-math.inf | >>> math.inf 輸出結果:inf |
math.nan | 非浮點數標記,NaN | >>> math.nan 輸出結果:nan |
向上取整操作;返回值:整數
>>> import math >>> math.ceil(13.14) 14 >>> math.ceil(9.9) 10 >>> math.ceil(19) # 整數無效 19
向下取整操作;返回值:整數
>>> import math >>> math.floor(13.14) 13 >>> math.floor(9.9) 9 >>> math.floor(19) # 整數無效 19
四捨五入操作;返回值:整數
>>> import math >>> round(13.14) 13 >>> round(9.9) 10 >>> round(11.936, 2) # 保留兩位小數的方式 11.94 >>> round(9) # 整數無效 9
獲取數值絕對值操作;返回值:浮點數
>>> import math >>> math.fabs(-9) 9.0 >>> math.fabs(9) 9.0 >>> math.fabs(-9.9) 9.9 >>> math.fabs(9.9) 9.9
獲取數值絕對值操作;返回值:整數、浮點數(根據原資料的型別而定)
>>> import math >>> abs(-9) 9 >>> abs(-9.9) 9.9
返回
x/y
的餘數;返回值:浮點數
>>> import math >>> math.fmod(4, 2) 0.0 >>> math.fmod(5, 2) 1.0 >>> math.fmod(10, 3) 1.0
計算一個數值的N次方;返回值:浮點型別
>>> import math >>> math.pow(2,4) 16.0 >>> math.pow(3,2) 9.0 >>> math.pow(5, 3) 125.0
開平方;返回值:浮點數
>>> import math>>> math.sqrt(9)3.0>>> math.sqrt(4)2.0>>> math.sqrt(16)4.0
返回序列中所有元素的和;返回值:浮點數
>>> import math >>> math.fsum((1, 2, 3, 4, 5)) 15.0 >>> math.fsum(range(1,11)) 55.0 >>> math.fsum(range(1,101)) 5050.0
將一個序列的數值進行相加求和;返回值:數值型別(根據序列中數值的型別變化)
>>> import math >>> sum([1,2,3,4,5]) 15 >>> sum(range(1,11) ... ) 55 >>> sum([1.0,2.0,3.0,4.0,5.0]) 15.0
將一個浮點數拆成小數和整數部分組成的元組;返回值:元組
>>> import math >>> math.modf(10.1) (0.09999999999999964, 10.0) >>> math.modf(9.9) (0.9000000000000004, 9.0) >>> math.modf(9) (0.0, 9.0)
返回浮點數的整數部分;返回值:整數
>>> import math >>> math.trunc(2.1) 2 >>> math.trunc(9.9) 9 >>> math.trunc(10.0) 10
將第二個數的正負號複製給第一個數;返回值:浮點數(值1 符號是值2的正負號)
>>> import math >>> math.copysign(-2, 1) 2.0 >>> math.copysign(2,-1) -2.0
返回 x 的階乘,如果 x 不是整數或為負數時則將引發 ValueError;返回值:整數
>>> import math >>> math.factorial(4) 24 >>> math.factorial(3) 6 >>> math.factorial(1) 1
返回整數 x 和 y 的最大公約數;返回值:整數
>>> import math >>> math.gcd(2,4) 2 >>> math.gcd(3,9) 3 >>> math.gcd(9,6) 3
decimal 模組提供了一個Decimal資料型別用於浮點數計算。相比內建的二進位制浮點數實現float這個型別有助於金融應用和其它需要精確十進位制表達的場合,控制精度,控制舍入以適應法律或者規定要求,確保十進位制數位精度,或者使用者希望計算結果與手算相符的場合。Decimal重現了手工的數學運算,這就確保了二進位制浮點數無法精確保有的資料精度。高精度使Decimal可以執行二進位制浮點數無法進行的模運算和等值測試。
python中小數相加可能會計算出結果不對,那就是由於科學計算精度問題
如上:我們需要得要的值是5.03
,如果需要處理這個問題的話就需要用到decimal
模組了
設定精度:decimal.getcontext().prec = num
(num為有效數位個數)
>>> import decimal >>> decimal.getcontext().prec = 3 >>> print(decimal.Decimal(2.02) + decimal.Decimal(3.01)) 5.03 >>> decimal.getcontext().prec = 2 >>> print(decimal.Decimal(2.02) + decimal.Decimal(3.01)) 5.0
設定小數位數:quantize()
import decimal print(decimal.Decimal(1.1234567890).quantize(decimal.Decimal("0.000"))) # 設定3位小數 print(decimal.Decimal(1.1234567890).quantize(decimal.Decimal("0.00"))) # 設定2位小數 print(decimal.Decimal(1.1234567890).quantize(decimal.Decimal("0.0"))) # 設定1位小數
輸出結果:
1.123 1.12 1.1
推薦學習:
以上就是完全掌握Python數學相關模組的詳細內容,更多請關注TW511.COM其它相關文章!