# 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``````

``````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:,}")``````