您的位置:首頁技術文章
文章詳情頁

淺談Python 中的復數問題

瀏覽:2日期:2022-06-19 10:20:02
前言

復習試題時,發現一道復數問題

問題

關于 Python 的復數類型,以下選項中描述錯誤的是

A復數的虛數部分通過后綴“J”或者“j”來表示

B對于復數 z,可以用 z.real 獲得它的實數部分

C對于復數 z,可以用 z.imag 獲得它的實數部分

D復數類型表示數學中的復數

正確答案: C

首先我們來明確一下什么是復數: 復數在數學上面的定義是由實數部分和虛數部分所組成的數,形如a+bj .

其中a、b為實數,j為“虛數單位”,j 的平方等于-1.a、b分別叫做復數a+bj的實部和虛部。

下面讓我們在Python中定義一個復數:real + imag(虛部的單位可以是j或者J)

a = 6 + 0.6j

# 輸出這個復數a

print(a)

# 獲取實部

print(a.real)

# 獲取虛部

print(a.imag)

# 獲取該復數的共軛復數

print(a.conjugate())

# 讓我們通過complex函數來定義一個復數

a = complex(1, 2)b = complex(1)c = complex('1')d = complex('1+2j')

# 運行結果

淺談Python 中的復數問題

補充:Python 復數及運算類型問題

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

淺談Python 中的復數問題

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

但是程序運行結果卻不是這樣:

淺談Python 中的復數問題

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

1、實部虛部問題

2、結果類型問題

再來看一些例子:

淺談Python 中的復數問題

淺談Python 中的復數問題

淺談Python 中的復數問題

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

淺談Python 中的復數問題

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

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

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

再列出一些運算的例子:

淺談Python 中的復數問題

淺談Python 中的復數問題

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

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

標簽: Python 編程
相關文章:
国产综合久久一区二区三区