大家對複數想必都不陌生,那就來看看下面幾道題能不能作正确?
第一題
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)。