Python complex()方法用于生成一個復數數字。復數是值如real + imag * 1j的數字形式。
一個復數包含實部和虛部兩部分,且是complex類的數據類型。因此,Python中的complex()方法語法格式如下:
class complex([ real[, imag]])
參數
real :可選參數,用于指定轉換的結果的復數實部,該參數可以接收能轉換為復數的一個字符串。
imag:可選參數,用于指定轉換的結果的復數虛部。
返回值
該方法的返回值是形如 real + imag * j的復數。
從語法中,我們可以看出,complex()方法可能不含參數,也可能含1個參數或2個參數。下面分別舉例說明。
#不帶參數
c = complex()
print(c)
輸出結果:
0j
#使用數字作為參數
c1 = complex(1,2)
print("c1 =",c1)
c2 = complex(1.1,2.34)
print("c2 =",c2)
c3 = complex(-2.1,-3.34)
print("c3 =",c3)
c4 = complex(1.2, -3.34)
print("c4 =",c4)
c5 = complex(-12)
print("c5 =",c5)
輸出結果:
c1 = (1+2j)
c2 = (1.1+2.34j)
c3 = (-2.1-3.34j)
c4 = (1.2-3.34j)
c5 = (-12+0j)
#使用字符串作為參數
s1 = "1.1+2.2j"
c = complex(s1)
print(c)
c = complex("2")
print(c)
輸出結果:
(1.1+2.2j)
當使用字符串作為參數時,需要注意以下兩點:
(2+0j)
①字符串中不能含有任何空白字符;
②使用字符串作為參數時,complex只能有字符串這一個參數。
下圖演示了字符串中含有空格及字符串作為參數時,參數個數多于1時的情景。
即當字符串參數中含有空白字符時會引發ValueError錯誤,指出參數是畸形字符串。
當參數為字符串時,而給出2個參數時會引發TypeError錯誤。
#參數是其它進制
c = complex(0XA1)
print("complex(0xA1)=",c)
c = complex(0XF2,0b1101)
print("complex(0XF2,0b1101)=",c)
c = complex(-0O72,-12.3)
print("complex(-0O72,-12.3)=",c)
輸出結果:
complex(0xA1)= (161+0j)
complex(0XF2,0b1101)= (242+13j)
complex(-0O72,-12.3)= (-58-12.3j)
complex()的參數允許是另外一個復數。
#參數是復數
c = complex(3,12+34j)
print("complex(3,12+34j)=",c)
c=complex(2-3j, 2)
print("complex(2-3j, 2)=",c)
c = complex(2-3j, 1+2j)
print("complex(2-3j,1+2j)=",c)
輸出結果:
complex(3,12+34j)= (-31+12j)
complex(2-3j, 2)= (2-1j)
complex(2-3j,1+2j)= -2j
其計算過程如下:
在complex(real,imag)方法中,結果的計算方法為:real + imag * j。
以第1個例子的計算方法為例:
3 +(12+34j)*j = 3 + 12j -34 = -31+12j
注意:j *j = -1
在Python3.6中,新增了對以下劃線分組數據的支持,如:
c=complex(1_200.1,-2.2)
print(c)
輸出內容:
(1200.1-2.2j)
complex()方法的作用是返回a + bj的復數形式;
當沒有向參數傳遞任何參數時,該方法返回0j;
當參數是數字時,可以使用任何形式的數字,包括二進制、八進制和十六進制等;
complex()方法可以把一個復數字符串轉換為復數,當第一個參數是字符串時,不允許使用第2個參數;
參數是字符串時,字符串中不允許有任何形式的空白;
在Python3.6之后的版本中也允許使用以下劃線作為分隔符的分組數字。
新聞熱點
疑難解答