5.1.1 Numbers
The interpreter acts as a simple calculator: you can type an
expression at it and it will write the value. Expression syntax is
straightforward: the operators + ,  , * and
/ work just like in most other languages (for example, Pascal
or C); parentheses can be used for grouping. For example:
>>> 2+2
4
>>> # This is a comment
... 2+2
4
>>> 2+2 # and a comment on the same line as code
4
>>> (505*6)/4
5
>>> # Integer division returns the floor:
... 7/3
2
>>> 7/3
3
Like in C, the equal sign (‘=’) is used to assign a value to a
variable. The value of an assignment is not written:
>>> width = 20
>>> height = 5*9
>>> width * height
900
A value can be assigned to several variables simultaneously:
>>> x = y = z = 0 # Zero x, y and z
>>> x
0
>>> y
0
>>> z
0
There is full support for floating point; operators with mixed type
operands convert the integer operand to floating point:
>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5
Complex numbers are also supported; imaginary numbers are written with
a suffix of ‘j’ or ‘J’. Complex numbers with a nonzero
real component are written as ‘(real+imagj)’, or can
be created from the real and imaginary parts
with the ‘complex(real, imag)’ function.
>>> 1j * 1J
(1+0j)
>>> 1j * complex(0,1)
(1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)
Complex numbers are always represented as two floating point numbers,
the real and imaginary part. To extract these parts from a complex
number z, use z.real and z.imag .
>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5
The conversion functions to floating point and integer
(float() , int() and long() ) don't
work for complex numbers  there is no one correct way to convert a
complex number to a real number. Use abs(z) to get its
magnitude (as a float) or z.real to get its real part.
>>> a=3.0+4.0j
>>> float(a)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: can't convert complex to float; use e.g. abs(z)
>>> a.real
3.0
>>> a.imag
4.0
>>> abs(a) # sqrt(a.real**2 + a.imag**2)
5.0
>>>
In interactive mode, the last printed expression is assigned to the
variable _ . This means that when you are using Python as a
desk calculator, it is somewhat easier to continue calculations, for
example:
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
>>>
This variable should be treated as readonly by the user. Don't
explicitly assign a value to it  you would create an independent
local variable with the same name masking the builtin variable with
its magic behavior.
