# Math: Basic Operators, Arithmetic, and Methods Python is used extensively in finance, simulation, data science, statistical analysis, and in many other mathematically-intensive fields of work. The reason being is that Python makes working with numbers very easy and intuitive.

## Arithmetic Operators

Here are the most common arithmetic operators that allow you to manipulate numbers in Python.

```	```
x = 2
y = 5

total = x + y
print(total)
```
```
```	```
7
```
```

### Subtraction

```	```
x = 8
y = 3

total = x - y
print(total)
```
```
```	```
5
```
```

### Multiplication

```	```
x = 4
y = 6

total = x * y
print(total)
```
```
```	```
24
```
```

### Division

```	```
x = 54
y = 2

total = x / y
print(total)
```
```
```	```
27.0
```
```

### Modulus

```	```
x = 64
y = 23

total = x % y
print(total)
```
```

### Exponents

```	```
x = 2
y = 4

total = x ** y
print(total)
```
```
```	```
16
```
```

### Order of Operations

Order of Operations, also known as PEMDAS, is at play here, including with the use of parentheses.

```	```
x = (4 * 5) + 20 / 4
print(x)
```
```

## Python Number Types

There are three kinds of numbers in Python, and they are as followed:

• int
• float
• complex
```	```
a = 1337  # int
b = 13.37 # float
c = 1337j # complex

print(type(a))
print(type(b))
print(type(c))
```
```
```	```
<class 'int'>
<class 'float'>
<class 'complex'>
```
```

### int

Integers are whole numbers like `4` or `532`. They can be positive or negative, and they don't contain any decimals.

```	```
a = 423
b = 74
c = 87937595
```
```

These are all valid integers.

### Float

Floating point numbers are numbers containing a decimal, and can also be positive or negative. Here are some examples:

```	```
a = 1.53
b = 3.1
c = -95.23
```
```

### Complex

Complex numbers are Python's representation of imaginary numbers, and they use a `j` to represent the `i`.

```	```
a = 4+2j
b = 9j
c = -3j
```
```

## Number Type Conversion

Python offers built-in methods to convert between these types using the `float()`, `int()`, and `complex()` methods.

```	```
a = 5   # int
b = 3.3 # float
c = 7j  # complex

float = float(a)
int = int(b)
complex = complex(a)

print(float)
print(int)
print(complex)

print(type(float))
print(type(int))
print(type(complex))
```
```
```	```
5.0
3
(5+0j)
<class 'float'>
<class 'int'>
<class 'complex'>
```
```

## Math Methods

We mentioned before that Python is used heavily in any field that utilizes math. The built-in methods that Python provides is a large reason why. Here are some of the most common ones:

### Absolute Value

Get the absolute value of a number by using the `abs()` method:

```	```
number = -34
print(abs(number))
```
```
```	```
34
```
```

### Floor

Use the `floor()` method to get the number passed in rounded down to the nearest integer if it is not already an integer.

```	```
import math

number = 6.21
print(math.min(number))
```
```
```	```
6
```
```

### Ceiling

Use the `ceil()` method to get the number passed in rounded up to the next highest integer if it is not already an integer.

```	```
import math

number = 6.21
print(math.ceil(number))
```
```
```	```
7
```
```

### Natural Logarithm

You can get the natural logarithmn of a number using `log()`.

```	```
import math

number = 123
print(math.log(number))
```
```
```	```
4.812184355372417
```
```

### Base-10 Logarithm

Alternatively, you can also get the base-10 logarithm of a number using `log10()`.

```	```
import math

number = 123
print(math.log10(number))
```
```
```	```
2.089905111439398
```
```

### Maximum

You can get the maximum of two or more numbers using the `max()` method:

```	```
number1 = 123
number2 = 456
number3 = 789
print(max(number1, number2, number3))
```
```
```	```
789
```
```

### Minimum

You can get the minimum of two or more numbers using the `min()` method:

```	```
number1 = 123
number2 = 456
number3 = 789
print(min(number1, number2, number3))
```
```
```	```
123
```
```

### Power

You can take the power of a number using `pow`.

```	```
base = 3
exponent = 4
print(pow(base, exponent))
```
```
```	```
81
```
```

### Round

You can round off any number to the nearest integer using `round()`.

```	```
number = 3.1459
places = 3
print(round(number, places))
```
```
```	```
3.146
```
```

### Square Root

You can take the square root of a number using `sqrt()`.

```	```
import math

number = 81
print(math.sqrt(number))
```
```
```	```
9
```
```

### Random

Generating random numbers in Python is easy. There's a module named `random` that has all we need. Call the `randrange()` method to get a number in between two other numbers you define:

```	```
import random

start = 1
end = 10
print(random.randrange(start, end))
```
```
```	```
6
```
```

## Math Constants

One last cool to point out is that Python's `math` module also comes with some predefined constants for us.

### Euler's Number

One of the constants that the `math` module comes with is Euler's Number:

```	```
import math

e = math.e
print(e)
```
```
```	```
2.718281828459045
```
```

### Pi

Python's `math` module also comes with a value for Pi, the ratio of the circumference of a circle relative to its diameter.

```	```
import math

pi = math.pi
print(pi)
```
```
```	```
3.141592653589793
```
```

You've got to love some delicious pi. 🥧🥧🥧