The last chapter mentioned two different kinds of numbers: ints and floats. This chapter is going to discuss the differences between the two types and what you as a programmer can do using number types.

Computers carry out commands by writing data to memory, reading data from memory, and performing calculations on that data. We have gone over how to write data to memory by defining variables, but we have yet to learn how to perform calculations on those numbers stored in memory. The type of the variable determines what kinds of calculations can be performed on it, and this section discusses the types of calculations that can be performed on number types. The table below shows a list of common operations on two numbers `x`

and `y`

.

Common Number Operations | |
---|---|

Operation | Result |

`x + y` | Sum (addition) |

`x - y` | Difference (subtraction) |

`x * y` | Product (multiplication) |

`x / y` | Quotient (division) |

`x // y` | Quotient (division) rounded down to whole number |

`x % y` | Remainder of `x / y` (e.g., `19 % 5` is `4` ) |

`abs(x)` | Absolute value of `x` |

`pow(x, y)` | Exponent (`x` to the power `y` ) |

`x ** y` | Exponent (`x` to the power `y` ) |

Use the exercise below to play with these operations. Change the values of x and y to different integer and float values to see what difference it makes. (Note: If you set y as 0, you will get a division by 0 error.)

```
# Change the values of x and y
x = 19
y = 5
# This code performs the operations
num_sum = x + y
diff = x - y
prod = x * y
quot = x / y
quot_int = x // y
rem = x % y
abs_val = abs(x)
exp = x ** y
# This prints all the results
print("")
print("x = " + str(x) + ", y = " + str(y))
print(str(x) + " + " + str(y) + " = " + str(num_sum))
print(str(x) + " - " + str(y) + " = " + str(diff))
print(str(x) + " * " + str(y) + " = " + str(prod))
print(str(x) + " / " + str(y) + " = " + str(quot))
print(str(x) + " // " + str(y) + " = " + str(quot_int))
print(str(x) + " % " + str(y) + " = " + str(rem))
print("abs(" + str(x) + ") = " + str(abs_val))
print(str(x) + " ** " + str(y) + " = " + str(exp))
```

For some versions of Python and for most programming languages, the types of the *operands* (the numbers operated on in math operations) will determine the type of the resulting value. For example, many programing languages will evaluate `12 / 5`

as `2`

instead of `2.4`

. Why? Because `12`

is an integer and `5`

is an integer, so the computer thinks that an operation with only integers (such as `12 / 5`

) should result in an integer, in this case `2`

. If you know you want the output of a math operation to be a float, then it is a good idea to make at least one of the operands a float. For example, `12.0 / 5.0`

will evaluate to `2.4`

, as will `12.0 / 5`

or `12 / 5.0`

. When at least one operand is a float, the computer knows that the result may have a decimal value, so the computer automatically makes the result a float so that the decimal isn't lost.

Using number types and operations, you can code a mathematical *equation*. An equation performs operations on operands to produce a result. The coding activity above codes very basic equations: addition, subtraction, multiplication, etc. You can combine these basic operations to code more complex equations, such as calculating the area of a circle from its radius or calculating a Fahrenheit temperature given a Celsius value. Use the coding exercise below to play with some of these mathematical equations.

```
# Area of a circle
radius = 2.5 # You can change the radius
pi = 3.14159
area = pi * (radius ** 2)
print("Radius: " + str(radius) + " m, Area: " + str(area) + " m^2")
# Celsius to Fahrenheit converter
celsius = 35.0 # You can change the celsius value
fahrenheit = (9/5.0) * celsius + 32
print("Celsius: " + str(celsius) + ", Fahrenheit: " + str(fahrenheit))
# Calculate distance (you can change the first 3 values)
velocity_start = 2.0 # meters per second
time = 10.0 # seconds
acceleration = 1.5 # meters per second per second
distance = (velocity_start * time) + (0.5 * acceleration * (time**2))
print("Distance travelled: " + str(distance) + " meters")
# Compare price per square inch of two pizzas (you can change diameter and cost)
diameter1 = 12.0 # inches
radius1 = diameter1 / 2.0
cost1 = 5.00 # dollars
area1 = pi * (radius1 ** 2)
cost_ratio1 = cost1 / area1
print("Size: " + str(diameter1) + " in, Cost: $" + str(cost1) + ", Cost per square inch: $" + str(cost_ratio1))
diameter2 = 16.0 # inches
radius2 = diameter2 / 2.0
cost2 = 7.25 # dollars
area2 = pi * (radius2 ** 2)
cost_ratio2 = cost2 / area2
print("Size: " + str(diameter2) + " in, Cost: $" + str(cost2) + ", Cost per square inch: $" + str(cost_ratio2))
```

Now that you have seen some examples of writing equations, it's time to do one on your own! Use the coding practice below to write an equation that converts a Fahrenheit temperature to a Celsius temperature. Use the following formula:

Where C is degrees Celsius and F is degrees Fahrenheit. First subtract 32 from the Fahrenheit value, then multiply the result by the fraction 5/9.

```
# You can change the Fahrenheit input value
f = 95
# Change this line to match the conversion equation:
c = f
# Print solution
print("F: " + str(f) + ", C: " + str(c))
```

```
f = 95
c = (5.0/9.0) * (f - 32)
print("F: " + str(f) + ", C: " + str(c))
```

`c = (5.0/9.0) * (f - 32)`