1. 程式人生 > >Python 複數及運算型別問題

Python 複數及運算型別問題

在做題的時候遇到了這樣的問題:

按照數學上的知識,我們通常會認為實部是1.23e+4,也就是12300;虛部是9.87e+6,也就是9870000。

但是程式執行結果卻不是這樣:

為什麼和我們想象的不一樣呢,這裡面涉及到兩個問題:

1、實部虛部問題

2、結果型別問題

再來看一些例子:

通過上述例子可以看出,如果我們使用<複數>.<imag>的方式來獲取虛部,那麼計算機就會將這個複數的實部和虛部相加,並且以浮點數的型別返回。而如果要獲取我們通常理解意義上的虛部,則要將這個複數賦給一個變數,通過<變數>.<imag>的方式獲取,就能得到“a + bi”模式的虛部。

實部的獲取相對容易理解,不是緊跟 j 的就是實部,同樣以浮點數的型別返回。

另一個問題就是運算型別的問題,Python中有三種資料型別:整數、浮點數、複數。這三種類型資料混合參與運算時,結果的型別採用“最寬範圍”的型別,複數類型範圍最寬,整數最窄。

在上述例子中,複數的實部、虛部不會是複數型別,則以次於複數型別的浮點數型別返回。

再列出一些運算的例子:

當然,如果型別保持一致,則以同樣型別返回運算結果(型別一致也就是最寬的型別就是他本身的型別)

上述是我通過實驗總結出來的,沒有查詢權威參考資料,若有不正確的地方希望指正。