天天看點

python abs函數能否求複數模_python中對複數的運算

大家對複數想必都不陌生,那就來看看下面幾道題能不能作正确?

第一題

a = 1.23e+4+9.87e+6j a.real 與 a.imag的值為:

A 12300.0

B 1.23e + 4

C 9882300.0

D 9.87e + 6

答案是多少,有沒有人答對?先别急,看看下面的運作結果吧

a = 1.23e+4+9.87e+6j

print(a.real)

print(a.imag)

12300.0

9870000.0

答案是A、C。為什麼呢,實際上這道題應該是這樣的 (1.23e+4) + (9.87e+6)j,1.23e+4與1.23*10**4是相等的,但是1.23e + 4的寫法是會報錯的,這點請注意一下。

第二題

tup1 = ['wust',True,2016,99.8,1+0j] 請問tup1.index(1+0j)的值是多少?

A. 1

B. 2

C. 3

D. 4

答案是多少呢?我相信很多人選D了,但是是錯的哦。請看下面

tup1 = ['wust',True,2016,99.8,1+0j,4e+2]

print(tup1.index(1+0j))

print(tup1[4])

#運作結果

1

(1+0j)

# 相同類型的還有

tup2 = ['wust',False,2016,99.8,0+0j,4e+2]

print(tup2.index(0+0j))

print(tup2[4])

#運作結果

1

0j

如果想要擷取正确的結果,隻要把tup中複數的實數或者虛數稍微改變一下。

tup1 = ['wust',True,2016,99.8,2+0j,4e+2]

print(tup1.index(2+0j))

#運作結果

4

第三題

abs(4+3j)的運算結果是多少?

A. 3

B. 4

C. 5

D. 5.0

如果你記得一句話,那這個題很容易猜出來。複數的實數部分和虛數部分都是浮點數。是以答案是D,但是原理呢?abs()函數傳回給定參數的絕對值。參數可以是實數(整數、浮點數等)或複數,如果參數是複數,則傳回複數的模。相當于pow((3**2+4**2),0.5)。