Conditional statements

Sources

This lesson is based on the Software Carpentry group’s lessons on Programming with Python.

Basics of conditional statements

Conditional statements can change the code behavior based on meeting certain conditions.

A starting example

Let’s take a simple conditional statement example.

num = 37
if num > 100:
    print('greater')
else:
    print('not greater')
not greater

What did we do here? First, we used the if and else statements to determine what parts of the code to execute. Note that both lines containing if or else end with a : and the text beneath is indented. What do these tests do? The if test checks to see whether the variable value for num is greater than 100. If so, ‘greater’ would be written to the screen. Since 37 is smaller than 100, the code beneath the else is executed. The else statement code will run whenever the if test is false.

If, but not else

The combination of if and else is very common, but both are not strictly required.

num = 53
if num > 100:
    print('53 is greater than 100')

Note that here we use only the if statement, and because 53 is not greater than 100, nothing is printed to the screen.

The else-if case

We can also have a second test for an if statment by using the elif (else-if) statement.

num = -3
if num > 0:
    print(num, 'is positive')
elif num == 0:
    print(num, 'is zero')
else:
    print(num, 'is negative')
-3 is negative

Makes sense, right? Note here that we use the == to test if a value is equal to another. The complete list of these comparison operators is given in the table below.

Operator

Meaning

<

Less than

<=

Less than or equal to

==

Equal to

>=

Greater than or equal to

>

Greater than

!=

Not equal to

Multiple conditions

We can also use and and or to have multiple conditions.

if (1 > 0) and (-1 > 0):
    print('Both parts are true')
else:
    print('One part is not true')
One part is not true
if (1 < 0) or (-1 < 0):
    print('At least one test is true')
At least one test is true

This can be quite handy.