2.3. Expressions¶
The right hand side of the assignment statement doesn’t have to be a value. It can be an
arithmetic expression, like 2 * 2
. The expression will be evaluated and the result from the
expression will be stored in the variable.
2.3.1. Operations¶
You can use all the standard mathematical operations, you just have to know the right symbols
to use: /
means divsion; *
means times; **
means “to the power of”.
2.3.2. Division and Integer Division¶
This book is using Python 3 which returns a decimal value - 1.66666666666667 - from a calculation like
5 / 3
. If we executed 5 / 3
in many programming languages (or older version so Python)
it would result in just 1 because we can only divide 5 by 3 one whole time. This form of
division is known as integer division and is what you probably learned in elementary school
before you learned long division.
There are times when we want to do integer division as part of solving a problem. If I want to figure out how many
whole feet are in 37 inches, I would divide 37 by 12. From it, I want an answer of just 3,
not 3.083333333333333. To do integer division in Python, we use //
. Compare the two results
in the code sample below. The first is done using normal (decimal) division. The second is
from doing integer division:
Note
Integer division always just ignores the remainder - it does not round the answer.
5 // 3
is just 1.
2.3.3. Modulo¶
If you are doing integer division, you may also care about the remainder. When I divide
do 37/12
to figure out the number of feet in 37 inches, I get 3. But maybe I also
want to know that there is one inch left over.
You may not be familiar with the modulo (remainder) operator %
. It returns the remainder
when you divide the first number by the second. In the case of 4 % 2
, 2
goes
into 4
two times with a remainder
of 0
. The result of 5 % 2
would be 1
since 2
goes into 5
, two times with a
remainder of 1
.
Note
The result of x % y
when x
is smaller than y
is always x
. The value y
can’t go into x
at all, since x
is smaller than y
, so the result is just x
.
So if you see 2 % 3
the result is 2
. Edit the code above to try this for yourself.
Change the code to result = 2 % 3
and see what that prints when it is run.