1. 程式人生 > 程式設計 >python math模組的基本使用教程

python math模組的基本使用教程

what's the math 模組

  Python math 模組提供了許多對浮點數的數學運算函式。需要注意的是,這些函式一般是對平臺 C 庫中同名函式的簡單封裝,所以一般情況下,不同平臺下計算的結果可能稍微地有所不同,有時候甚至有很大出入。

主要功能有:

  • 冪數:冪次方、平方根
  • 對數:2、10、e相關的對數操作
  • 圓相關:π、弧度與角度的轉換
  • 三角函式:正三角函式、反三角函式
  • 其他常用:小數的整數部分、向上取整、向下取整、兩個數的最大公約數、取餘數...

冪數

冪與平方根

# pow(x,y):返回x的y次方
print(math.pow(2,4)) # 2**4

# ldexp(x,i):返回x*(2**i)的值
print(math.ldexp(5,2)) # 5*(2**2)=20.0

# sqrt(x):求x的平方根
print(math.sqrt(16)) # 4.0

# factorial(x):取x的階乘的值
print(math.factorial(5)) # 5*4*3*2*1 # 120

# hypot(x,y):得到(x**2+y**2)的平方根
print(math.hypot(3,4)) # 5

常數e相關

import math

# 常數e
math.e # 2.718281828459045

# exp(x):返回常數e的x次方
math.exp(2) # 7.38905609893065,相當於math.e**2

# expm1:返回常數e的x次方的值減1
math.expm1(1) # 1.718281828459045,相當於math.exp(1) - 1

對數

# log2(x):返回x的基2對數
print(math.log2(128)) # 7

# log10(x):返回x的以10為底的對數
print(math.log10(100)) # 2

# log(x,base):返回x的自然對數,預設以e為基數,base引數給定時,將x的對數返回給定的base,計算式為:log(x)/log(base)
print(math.log(256,4)) # 4

# log1p(x)::返回x+1的自然對數(基數為e)的值
print(math.log1p(5))

圓相關

# pi:常數π,圓周率
print(math.pi) # 3.141592653589793

angle = 30 # 30度
# radians:把角度x轉換成弧度
print(math.radians(angle)) # 0.5235987755982988
print(30*math.pi/180) # 效果相同

# degrees:把x從弧度轉換成角度
temp = math.radians(angle)
print(math.degrees(temp)) # 29.999999999999996

三角函式

sin、cos、tan

  math 模組對正三角函式的計算,變數是弧度,所以在計算時需要先將角度轉換為弧度

angle = 30 # 30度
radian = math.radians(angle) # 角度轉換成弧度
print(math.sin(radian))
print(math.cos(radian))
print(math.tan(radian))

asin和acos和atan

  math 模組對反三角函式的計算,返回值是弧度

h = math.asin(0.5) # sin(30) = 0.5
print(math.degrees(h)) # 30.000000000000004

h = math.acos(0.5) # cos(60) = 0.5
print(math.degrees(h)) # 60.00000000000001


h = math.atan(1) # tan(45) = 1
print(math.degrees(h)) # 45.0

sinh和cosh和tanh,asinh和acosh和atanh

  雙曲正弦、餘弦、正切,反雙曲正弦、餘弦、正切

其他

# trunc(x):返回x的整數部分
print(math.trunc(8.3)) # 8

# ceil(x):取大於等於x的最小的整數值,如果x是一個整數,則返回x
print(math.ceil(10.2)) # 11

# floor(x):取小於等於x的最大的整數值,如果x是一個整數,則返回自身
print(math.floor(15.3)) # 15

# fabs(x):返回x的絕對值
print(math.fabs(-13)) # 13.0

# modf(x):返回由x的小數部分和整數部分組成的元組
print(math.modf(132.333)) # (0.3329999999999984,132.0)

# copysign(x,y):把y的正負號加到x前面,可以使用0
print(math.copysign(10,-15)) # -10.0

# fmod(x,y):得到x/y的餘數,其值是一個浮點數
print(math.fmod(15,2)) # 1.0

# gcd(x,y):返回x和y的最大公約數
print(math.gcd(8,100)) # 4

# frexp(x):返回一個元組(m,e),其計算方式為:x分別除0.5和1,得到一個值的範圍
print(math.frexp(10))

# fsum(x):對迭代器裡的每個元素進行求和操作
print(math.fsum([1,2,3,4])) # 10.0

# isfinite(x):如果x是正無窮大或負無窮大,則返回True,否則返回False
#
# isinf(x):如果x是正無窮大或負無窮大,則返回True,否則返回False
#
# isnan(x):如果x不是數字True,否則返回False
print(math.isnan(1.222))

進階應用

計算2個座標點的距離

import math
 
x1 = 0
y1 = 20
x2 = 12
y2 = 0

p1 = (x1,y1)
p2 = (x2,y2)

result = math.sqrt(math.pow(x1 - x2,2) +math.pow(y1 - y2,2))

以上就是python math模組的基本使用教程的詳細內容,更多關於python math模組的使用的資料請關注我們其它相關文章!