1. 程式人生 > >Python中math和cmath模組的使用

Python中math和cmath模組的使用

目錄

Math模組

  • pi                數字常量,圓周率
  • e                 表示一個常量
  • sqrt(x)         求x的平方根
  • fabs(x)         返回x的絕對值
  • factorial(x)    取x的階乘的值
  • fmod(x,y)     得到x/y的餘數,其值是一個浮點數
  • pow(x, y)     返回x的y次方,即x**y
  • isfinite(x)     如果x是正無窮大或負無窮大,則返回True,否則返回False
  • isinf(x)         如果x是正無窮大或負無窮大,則返回True,否則返回False
  • hypot(x)       如果x是不是無窮大的數字,則返回True,否則返回False
  • isnan(x)       如果x不是數字,則返回True,否則返回False
  • ldexp(x)       返回x*(2**i)的值////
  • log(x, a)       返回x的自然對數,以a為基數(不寫則預設以e為基數),a引數給定時,將x的對數返回給定的a,計算式為:log(x)/log(a
  • log10(x)       返回x的以10為底的對數
  • log1p(x)       返回x+1的自然對數(基數為e)的值
  • log2(x)         返回x的基2對數
  • modf(x)        返回由x的小數部分和整數部分組成的元組
  • trunc(x)        返回x的整數部分
  • ceil(x)           取大於等於x的最小的整數值,如果x是一個整數,則返回x
  • floor(x)        取小於等於x的最大的整數值,如果x是一個整數,則返回自身
  • radians(x)    把角度x轉換成弧度,與degrees 為反函式
  • degrees(x)    把x從弧度轉換成角度
  • sin(x)          求x(x為弧度)的正弦值
  • sinh(x)        求x(x為弧度)的雙曲正弦值
  • cos(x)          求x的餘弦,x必須是弧度
  • tan(x)          返回x(x為弧度)的正切值
  • tanh(x)        返回x(x為弧度)的雙曲正切值
  • copysign(x, y)把y的正負號加到x前面,可以使用0
  • exp(x)        返回math.e,也就是2.71828的x次方
  • expm1(x)    返回math.e的x(其值為2.71828)次方的值減1
  • frexp(x)        返回一個元組(m,e),其計算方式為:x分別除0.5和1,得到一個值的範圍
  • fsum(x)        對迭代器裡的每個元素進行求和操作
  • gcd(x,y)          返回x和y的最大公約數
import math
print(math.pi)
print(math.e)
print(math.sqrt(100))
print(math.fabs(-5.5))
print(math.factorial(5))
print(math.pow(10,2))
print(math.fmod(5,2)
###############################
3.141592653589793
2.718281828459045
10.0
5.5
120
100.0
1.0

Cmath模組

對於複數,Python 支援它的加減乘除運算,同時提供了 cmath 模組對其他複雜運算進行支援。cmath 模組和 Python 中的 math 模組對應, math提供對於實數的支援, 在這裡主要討論 cmath 模組中的幾個函式的用法。

1)極座標和笛卡爾座標表示的轉換
C==c.real+c.imag*j 的複數表示方法為複數的笛卡爾表示法, cmath 模組中的 polar() 方法和 rect() 方法可以對複數進行極座標表示和笛卡爾表示方法的轉換。 例:

>>> import cmath
>>> Z=1+2j
>>> print cmath.polar(Z)
(2.23606797749979, 1.1071487177940904)
>>> a,b=cmath.polar(Z)
>>> print cmath.rect(a,b)
(1+2j)

polar 函式對一個輸入的笛卡爾形勢的複數進行計算,輸出為一個二元組,第一個值為Z的模值, 第二個為幅度值。 rect() 函式對輸入的模和幅度值進行計算輸出笛卡爾表示。

如果需要單獨對一個複數進行幅度值的求解,可以呼叫 cmath.phrase(x) 函式,返回幅度值。

2)複數的冪指數與對數函式
複數的指數函式為 cmath.exp(x), 用來求解 e^x 表示式。

cmath.log(x[,base]) 用來求以 Base 為底的 x 的對數。

cmath.log10(x) 用來求以 10 為底 x 的對數

cmath.sqrt(x) 用來求 x 的平方根。

3)複數的三角函式方程
包括所有的三角函式計算 acos(x) asin(x) atan(x) sin(x) cos(x) tan(x)。

4)引數類判斷
cmath.isinf(x) 如果x的實部或者虛部為無窮大,則返回true。

cmath.isnan(x)如果x的實部或者虛步不是數字則返回true。

5)常量支援
cmat.pi 浮點值, 表示圓周率的大小

cmat.e 浮點值, 表示自然對數的底