**The short answer is 80 bytes.**

Here’s the longer answer:

In Python, you can determine the size of any object `x`

by using the function `sys.getsizeof(x)`

.

The complex number consists of two parts: the real and the imaginary part.

On my notebook, a complex number is represented by 32 bytes:

import sys a = complex(1, 1) print(sys.getsizeof(a)) # 32 b = complex(9**150, 9**150) print(sys.getsizeof(b)) # 32

Note that the `sys.getsizeof()`

method only returns the number of bytes the object is directly accountable for. It does not return the size of the objects to which a container object points in memory. Hence, the method is not suitable to calculate the size of container types.

As it turns out, a complex number is a container type: it contains two floats (the real and the imaginary part). Each float has 24 bytes:

b = complex(8**10, 9**150) print(sys.getsizeof(b)) # 32 print(sys.getsizeof(b.imag)) # 24 print(sys.getsizeof(b.real)) # 24

**Therefore, I would argue that a complex number needs 32 bytes for the complex number object itself and 2*24 bytes for the real and imaginary parts (float type). In total, a complex number needs 80 bytes in memory.**