問題
復(fù)數(shù)計(jì)算
解決方案
復(fù)數(shù)通過complex()函數(shù)來指定郑趁,或者通過浮點(diǎn)數(shù)加上后綴j來指定;實(shí)部纬凤、虛部和共軛值可以很方便的提取取來:
a = complex(3, 4)
print(a)
# a=(3+4j)
b = 3-5j
print (b)
#b = (3-5j)
#提取實(shí)部
print (a.real)
#3.0
#提取虛部
print (a.imag)
#4.0
print(a.conjugate())
#(3-4j)
所有常見的算術(shù)運(yùn)算操作都適用復(fù)數(shù):
print (a+b)
#(6-1j)
print (a-b)
#9j
如果要執(zhí)行有關(guān)復(fù)數(shù)的函數(shù)操作,例如求正弦笤昨、余弦或平方根祖驱,可以使用cmath模塊
import cmath
print (cmath.sin(a))
#(3.853738037919377-27.016813258003936j)
python中大部分和數(shù)學(xué)相關(guān)的模塊都可適用復(fù)數(shù),例如瞒窒,使用numpy模塊可以直接的創(chuàng)建復(fù)數(shù)數(shù)組捺僻,并對(duì)它們進(jìn)行操作:
import numpy as np
a = np.array([2+3j, 4+5j, 6-7j, 8+9j])
print (a)
python中的標(biāo)準(zhǔn)函數(shù)默認(rèn)情況下不會(huì)產(chǎn)生復(fù)數(shù)值;如果希望產(chǎn)生復(fù)數(shù)結(jié)果崇裁,那必須明確使用cmath模塊或者可以感知復(fù)數(shù)的庫中聲明對(duì)復(fù)數(shù)類型的使用匕坯。
import math
print (math.sqrt(-1))
#ValueError:math domain error
import cmath
print (cmath.sqrt(-1))
#1j