# 3.2. 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.

## 3.2.1. Integer Division¶

You can use all the standard mathematical symbols.

Note

This book is using Python 3.0 which returns a decimal value from an integer calculation like 1 / 3. If we had executed 1 / 3 in an older Python development environment it would have printed 0 instead. In many languages if you are only using integers in calculations (whole numbers - like -3,65, -39028, 602939) the result will also be an integer and the factional part (part after the decimal point) is thrown away. In those environments it is important to use decimal values (like 1.0 / 2, 1 / 2.0, or 1.0 / 2.0) if you want a decimal result.

## 3.2.2. Modulo¶

There are also some symbols that may be used in ways that you don’t expect.

You may not be familiar with the modulo (remainder) operator %. It returns the remainder when you divide the first number by the second. You probably did this long ago when you were learning long division. 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. In fact you can check if the result of X % 2 is equal to 1 to see if X is odd and if the result of X % 2 is equal to 0 then X is even.

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.

Note

Discuss topics in this section with classmates.