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之后的版本中也允许使用以下划线作为分隔符的分组数字。
新闻热点
疑难解答