Python complex()
Tags: python, programming, codenewbie, tutorial
Published: 2021-10-11 13:53:39

---
title: Python complex()
published: true
date: 2021-10-09 15:00:00 UTC
tags: #python #programming #codenewbie #tutorial
canonical_url: https://itsmycode.com/python-complex/
---

ItsMyCode |

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:

```python 
**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**](https://docs.python.org/3/library/exceptions.html#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. 

```python 
# 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**

```python 
(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**

```python 
# Code to illustrate complex number

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

```

**Output**

```python 
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**

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

**Output**

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

The post [Python complex()](https://itsmycode.com/python-complex/) appeared first on [ItsMyCode](https://itsmycode.com).