Are complex numbers a supported data-type in python? If so, how do you use them?

3

2 Answers

In python, you can put ‘j’ or ‘J’ after a number to make it imaginary, so you can write complex literals easily:

>>> 1j 1j >>> 1J 1j >>> 1j * 1j (-1+0j) 

The ‘j’ suffix comes from electrical engineering, where the variable ‘i’ is usually used for current. (Reasoning found here.)

The type of a complex number is complex, and you can use the type as a constructor if you prefer:

>>> complex(2,3) (2+3j) 

A complex number has some built-in accessors:

>>> z = 2+3j >>> z.real 2.0 >>> z.imag 3.0 >>> z.conjugate() (2-3j) 

Several built-in functions support complex numbers:

>>> abs(3 + 4j) 5.0 >>> pow(3 + 4j, 2) (-7+24j) 

The standard module cmath has more functions that handle complex numbers:

>>> import cmath >>> cmath.sin(2 + 3j) (9.15449914691143-4.168906959966565j) 
2

The following example for complex numbers should be self explanatory including the error message at the end

>>> 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 >>> 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy