### Working with Python

# Numbers

## Convert string to integer

You must explicitly convert strings to integers, use the `int()`

function to convert. You will get a `TypeError`

if you don't convert.

```
s = '13'
s + 2
>>> TypeError: can only concatenate str (not "int") to str
```

Instead use:

```
s = '13'
int(s) + 2
>>> 15
```

You need to be aware that the `+`

operator is used for joining strings and lists together, so you might get strange results if you don't convert first.

```
s = '13'
t = '2'
s + t
>>> '132'
```

## Convert string to float

Use `float()`

to convert a string to a float, or to convert an integer to a float.

```
n = 23
float(n)
>>> 23.0
```

## Check if string is a number

There is not a simple built-in way to check if a string is a number. You can use `.isdigit()`

and `.isnumeric()`

but they will fail on negative and decimal. This function is probably your best option:

```
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
```

## Modulo Arithmetic

For Python, use the `//`

to get the floored quotient (the whole number in division) and `%`

to get the remainder. For example:

```
13 // 4
>>> 3
13 % 4
>>> 1
```

## Exponent Arithmetic

There are two ways to do power of math, use the `**`

operator or the `pow()`

function, they will give the same results:

```
4 ** 2
>>6 16
pow(4, 2)
>>> 16
```

## Absolute Value

Use the `abs()`

function to get the absolute value for a number

```
abs(-3)
>>> 3
```

## Sum Numbers in a List

Python has a built-in function to sum elements in a list.

```
set = [1, 2, 3]
sum(set)
>>> 6
```

## Underscores for Long Numbers

You can use underscores in long numbers to make them easier to read. They are ignored by the interpreter.

```
x = 100000000
y = 100_000_000 # like commas
z = 10_00_0_0000 # weird
x == y == z
>>> True
```

If you want to format a number with commas for display, use `{:,}`

format. See my string formatting page for many examples on formatting.

```
y = 100_000_000
print(f"{y:,}")
```