Are complex numbers a supported data-type in python? If so, how do you use them?
问问题
309803 次
2 回答
233
在 python 中,你可以在数字后面加上 'j' 或 'J' 以使其成为虚数,这样你就可以轻松编写复杂的文字:
>>> 1j
1j
>>> 1J
1j
>>> 1j * 1j
(-1+0j)
“j”后缀来自电气工程,其中变量“i”通常用于表示电流。(推理在这里找到。)
复数的类型是complex
,如果您愿意,可以使用该类型作为构造函数:
>>> complex(2,3)
(2+3j)
复数有一些内置的访问器:
>>> z = 2+3j
>>> z.real
2.0
>>> z.imag
3.0
>>> z.conjugate()
(2-3j)
几个内置函数支持复数:
>>> abs(3 + 4j)
5.0
>>> pow(3 + 4j, 2)
(-7+24j)
标准模块cmath
有更多处理复数的函数:
>>> import cmath
>>> cmath.sin(2 + 3j)
(9.15449914691143-4.168906959966565j)
于 2011-12-03T20:20:43.040 回答
16
下面的复数示例应该是不言自明的,包括最后的错误消息
>>> x=complex(1,2)
>>> print x
(1+2j)
>>> y=complex(3,4)
>>> print y
(3+4j)
>>> z=x+y
>>> print x
(1+2j)
>>> print z
(4+6j)
>>> z=x*y
>>> print z
(-5+10j)
>>> z=x/y
>>> print z
(0.44+0.08j)
>>> print x.conjugate()
(1-2j)
>>> print x.imag
2.0
>>> print x.real
1.0
>>> print x>y
Traceback (most recent call last):
File "<pyshell#149>", line 1, in <module>
print x>y
TypeError: no ordering relation is defined for complex numbers
>>> print x==y
False
>>>
于 2011-12-03T20:18:09.670 回答