Numbers

The main numeric types in Python are integers, floating point numbers (or floats) and complex numbers. The syntax for arithmetic operators are: addition +, subtraction -, multiplication *, division / and exponentiation **.

Integers

8 + 12

20


Subtract integers:

2019 - 21

1998


Multiply integers:

45 * 11

495


Divide integers (and notice that division of integers always returns a float):

100 / 4

25.0


Compute powers of integers:

2**10

1024


Use the built-in function type() to verify the type of a Python object:

type(42)

int


Floating Point Numbers

A floating point number (or float) is a real number written in decimal form. Python stores floats and integers in different ways and if we combine integers and floats using arithmetic operations the result is always a float.

Approximate $\sqrt{2} \,$:

2**0.5

1.4142135623730951


Approximate $2 \pi$:

2 * 3.14159

6.28318


Use scientific notation to create $0.00001$:

1e-5

1e-05


Again, use the type() function to verify the type of a number:

type(42)

int

type(42.0)

float


Complex Numbers

Use the built-in function complex() to create a complex number in Python or use the letter j for $j = \sqrt{-1}$. The built-in function complex() takes 2 parameters defining the real and imaginary part of the complex number.

Create the complex number $1 + j$:

complex(1,1)

(1+1j)


(1 + 2j) + (2 - 3j)

(3-1j)


Multiply complex numbers:

(2 - 1j) * (5 + 2j)

(12-1j)


Use the type() function to verify the type of a number:

type(2 - 7j)

complex


Arithmetic Operators

The syntax for arithmetic operators in Python are:

Operator Description
+ addition
- subtraction
* multiplication
/ division
** exponentiation
% remainder (or modulo)
// integer division

Notice that division of integers always returns a float:

4 / 3

1.3333333333333333


Even if the mathematical result is an integer:

4 / 2

2.0


Use parentheses to group combinations of arithmetic operations:

5 * (4 + 3) - 2

33


A positive integer power of an integer is again an integer:

2**4

16


A negative integer power of an integer is a float:

2**(-1)

0.5


An exponent involving a float is a float:

9**0.5

3.0


The remainder operator computes the remainder of division of integers:

11 % 4

3


Integer division is:

11 // 4

2


Examples

Taylor Approximation

The Taylor series of the exponential function $e^x$ is:

$$e^x = \sum_{k=0}^{\infty} \frac{x^k}{k!}$$

Compute the Taylor polynomial of degree 5 evaluated at $x = 1$ to find an approximation of $e$

$$e \approx \frac{1}{0!} + \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \frac{1}{4!} + \frac{1}{5!}$$

1 + 1 + 1/2 + 1/(3*2) + 1/(4*3*2) + 1/(5*4*3*2)

2.7166666666666663


Ramanujan's Pi Formula

Srinivasa Ramanujan discovered the following beautiful (and very rapidly converging) series representation of $\pi$:

$$\frac{1}{\pi} = \frac{2 \sqrt{2}}{99^2} \sum_{k = 0}^{\infty} \frac{(4k)!}{k!^4} \frac{1103 + 26390k}{396^{4k}}$$

Let's find an approximation of $\pi$ by computing the reciprocal of the sum of the first 3 terms of the series:

$$\pi \approx \frac{99^2}{2 \sqrt{2}} \frac{1}{\left( 1103 + 4! \frac{1103 + 26390}{396^{4}} + \frac{8!}{2^4} \frac{1103 + 26390(2)}{396^{8}} \right)}$$

99**2 / (2 * 2**0.5) / (1103 + 4*3*2 * (26390 + 1103) / 396**4
+ 8*7*6*5*4*3*2 / 2**4 * (26390*2 + 1103) / 396**8)

3.141592653589793


These are exactly the first 16 digits of $\pi$.

Exercises

Exercise 1. The Taylor series of $\cos x$ is:

$$\cos x = \sum_{k=0}^{\infty} (-1)^k \frac{x^{2k}}{(2k)!}$$

Compute the Taylor polynomial of degree 6 evaluated at $x=2$:

$$\cos(2) \approx 1 - \frac{2^2}{2!} + \frac{2^4}{4!} - \frac{2^6}{6!}$$

Exercise 2. The Riemann zeta function is the infinite series:

$$\zeta(s) = \sum_{n=1}^{\infty} \frac{1}{n^s}$$

and is intimately related to prime numbers by the Euler product formula:

$$\sum_{n=1}^{\infty} \frac{1}{n^s} = \prod_p \left( \frac{1}{1 - p^{-s}} \right)$$

where the product is over all primes $p = 2,3,5,7,11,13,\dots$

Compute the 5th partial sum for $s=2$

$$1 + \frac{1}{2^2} + \frac{1}{3^2} + \frac{1}{4^2} + \frac{1}{5^2}$$

Compute the 5th partial product for $s=2$:

$$\left( \frac{1}{1 - 2^{-2}} \right) \left( \frac{1}{1 - 3^{-2}} \right) \left( \frac{1}{1 - 5^{-2}} \right) \left( \frac{1}{1 - 7^{-2}} \right) \left( \frac{1}{1 - 11^{-2}} \right)$$

$$\zeta(2) = \frac{\pi^2}{6}$$

which converges more quickly: the infinite series or product?

Exercise 3. The continued fraction for $\sqrt{2}$ is:

$$\sqrt{2} = 1 + \frac{1}{2 + \frac{1}{2 + \frac{1}{2 + \frac{1}{2 + \ddots}}}}$$

Compute the following (partial) continued fraction to approximate $\sqrt{2}$:

$$\sqrt{2} \approx 1 + \frac{1}{2 + \frac{1}{2 + \frac{1}{2 + \frac{1}{2}}}}$$

Exercise 4. Suppose type(x) is int and type(y) is float. Determine:

• type(x / y) if y is nonzero
• type(x * y)
• type(x + y)

Exercise 5. Suppose both type(x) and type(y) are int. Determine:

• type(x / y) if y is nonzero
• type(x * y)
• type(x + y)

Exercise 6. Suppose type(x) is float and type(y) is int. Determine type(x ** y).

Exercise 7. Suppose type(x) is int and type(y) is float. Determine type(x ** y).

Exercise 8. Suppose both type(x) and type(y) are int. Determine type(x ** y).