Python complex()

Python complex() function takes real, imaginary numbers and strings as input and converts them into a complex number. This method takes two optional parameters (real and imaginary) and returns a complex number as output.

complex() Syntax 

The syntax of complex() is:

complex([real[, imaginary]])

complex() Parameters

The complex() method can take two parameters, and both are optional.

  • real (optional) – A number representing the real part of the complex number. The real number can be of a string like ‘3+5j‘. If not set anything, it defaults to 0.
  • imaginary (optional) – A number representing the imaginary part of the complex number. If not set anything, it defaults to 0.

If the first parameter is passed as a string, then it will be interpreted as a complex number. In this case, the second parameter should be omitted.

complex() Return Value

It returns the complex number as output. 

Note: In string conversion, it must not contain whitespace around the operator (+ or -). Example – complex('1+2j') is fine, but complex('1 + 2j') raises ValueError.

Example 1: How to create a complex number in Python?

In this example, we will take a look at creating the complex number using real numbers with integer, float and string. 

# Code to illustrate complex number

# covert real number to complex
num = complex(5,3)
print(num)

# covert real number to complex
num = complex(5,-4)
print(num)

# Default if no parameter is passed to complex method
num = complex()
print(num)

# In case if you pass only real number, defaults imaginary to 0
num = complex(5)
print(num)

# In case if you pass only real number, defaults imaginary to 0
num = complex(-2)
print(num)

# In case if you pass only float number, defaults imaginary to 0
num = complex(5.6,4)
print(num)

# if string is passed, it will be interpreted as complex number
num = complex('8')
print(num)

# if string is passed, it will be interpreted as complex number
num = complex('1+2j')
print(num)

Output

(5+3j)
(5-4j)
0j
(5+0j)
(-2+0j)
(5.6+4j)
(8+0j)
(1+2j)

Example 2: TypeError while converting string with imaginary parameter

If the first parameter is passed as a string, then it will be interpreted as a complex number. In this case, the second parameter should be omitted. Otherwise, you get the TypeError: complex() can’t take second arg if first is a string

# Code to illustrate complex number

# if string is passed with imaginary number
num = complex('8',5)
print(num)

Output

Traceback (most recent call last):
  File "c:\Projects\Tryouts\listindexerror.py", line 4, in <module>
    num = complex('8',5)
TypeError: complex() can't take second arg if first is a string

Example 3: ValueError if string operator has a space 

In the case of string conversion, if there is any space around the operator, Python will raise ValueError: complex() arg is a malformed string

# if you give a space in the string
num = complex('1 + 2j')
print(num)

Output

Traceback (most recent call last):
  File "c:\Projects\Tryouts\listindexerror.py", line 4, in <module>
    num = complex('1 + 2j')
ValueError: complex() arg is a malformed string
Leave a Reply

Your email address will not be published. Required fields are marked *

Sign Up for Our Newsletters

Get notified of the best deals on our WordPress themes.

You May Also Like
List of Python free ebooks

List of Free Python Books

Table of Contents Hide Python SuccinctlyPython Data Science HandbookThink Python 2nd EditionAutomate the Boring Stuff with PythonMaking Games with Python & PygameData Structures and Algorithms in Python Google Python Style GuideA…
View Post