在Python中,复数是一种受支持的数据类型吗?如果是,你如何使用它们?
wbgh16ku1#
在python中,可以在数字后面加上'j'或'J',使其成为虚数,这样就可以轻松地编写复杂的文字:
>>> 1j 1j >>> 1J 1j >>> 1j * 1j (-1+0j)
后缀“j "来自电气工程,其中变量”i“通常用于表示电流。(Reasoning found here.)复数的型别是complex,如果您愿意,可以使用型别做为建构函式:
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)
The standard module cmath具有更多处理复数的函数:
cmath
>>> import cmath >>> cmath.sin(2 + 3j) (9.15449914691143-4.168906959966565j)
voj3qocg2#
下面的复数示例应该是不言自明的,包括结尾处的错误消息
>>> 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 >>>
sg3maiej3#
是的,Python中支持复杂类型。对于数字,Python 3支持3种类型int、float和complex类型,如下所示:
print(type(100), isinstance(100, int)) print(type(100.23), isinstance(100.23, float)) print(type(100 + 2j), isinstance(100 + 2j, complex))
输出量:
<class 'int'> True <class 'float'> True <class 'complex'> True
对于数字,Python 2支持4种类型int、long、float和complex类型,如下所示:
print(type(100), isinstance(100, int)) print(type(10000000000000000000), isinstance(10000000000000000000, long)) print(type(100.23), isinstance(100.23, float)) print(type(100 + 2j), isinstance(100 + 2j, complex))
(<type 'int'>, True) (<type 'long'>, True) (<type 'float'>, True) (<type 'complex'>, True)
3条答案
按热度按时间wbgh16ku1#
在python中,可以在数字后面加上'j'或'J',使其成为虚数,这样就可以轻松地编写复杂的文字:
后缀“j "来自电气工程,其中变量”i“通常用于表示电流。(Reasoning found here.)
复数的型别是
complex
,如果您愿意,可以使用型别做为建构函式:复数有一些内置的访问器:
有几个内置函数支持复数:
The standard module
cmath
具有更多处理复数的函数:voj3qocg2#
下面的复数示例应该是不言自明的,包括结尾处的错误消息
sg3maiej3#
是的,Python中支持复杂类型。
对于数字,Python 3支持3种类型int、float和complex类型,如下所示:
输出量:
对于数字,Python 2支持4种类型int、long、float和complex类型,如下所示:
输出量: