Loops in Python

if .. else statements in Python programming

Razia Khan
9 min readAug 14, 2020

What is if…else statement in Python?

Decision making is required when we want to execute a code only if a certain condition is satisfied.

The if…elif…else statement is used in Python for decision making.

Syntax of If statement in Python

If statements are control flow statements which helps us to run a particular code only when a certain condition is satisfied.

We use if statements when we need to execute a certain block of Python code when a particular condition is true.

The syntax of if statement in Python is pretty simple.

if condition:
block_of_code
OR if test expression:
statement(s)

Syntax of if..else statement in Python

If..else statements are like extension of ‘if’ statements, with the help of if..else we can execute certain statements if condition is true and a different set of statements if condition is false.

if condition:
block_of_code_1
else:
block_of_code_2

block_of_code_1: This would execute if the given condition is true
block_of_code_2: This would execute if the given condition is false

If else statement flow diagram

If statement Example

we are checking the value of flag variable and if the value is True then we are executing print statements.

flag = True
if flag == True:
print("Welcome")
ORflag = True
if flag:
print("Welcome")

Output:

Welcome

The output of the condition would either be true or false. If the outcome of condition is true then the statements inside body of ‘if’ executes, however if the outcome of condition is false then the statements inside ‘if’ are skipped. Lets take another example to understand this:

flag = False
if flag:
print("You Guys are Awesome")

The output of this code is none, it does not print anything because the outcome of condition is ‘false’.

If example without boolean variables

In the above examples, we have used the boolean variables in place of conditions. However we can use any variables in our conditions. For example:

num = 100
if num < 200:
print("num is less than 200")

Output:

num is less than 200

If - else example

num = 22
if num % 2 == 0:
print("Even Number")
else:
print("Odd Number")

Output:

Even Number

If elif else statement

The if..elif..else statement is used when we need to check multiple conditions.

Syntax of if elif else statement

This way we are checking multiple conditions.

if condition:
block_of_code_1
elif condition_2:
block_of_code_2
elif condition_3:
block_of_code_3
..
..
..
else:
block_of_code_n

Notes:
1. There can be multiple ‘elif’ blocks, however there is only ‘else’ block is allowed.
2. Out of all these blocks only one block_of_code gets executed. If the condition is true then the code inside ‘if’ gets executed, if condition is false then the next condition(associated with elif) is evaluated and so on. If none of the conditions is true then the code inside ‘else’ gets executed.

if..elif..else statement example

num = 1122
if 9 < num < 99:
print("Two digit number")
elif 99 < num < 999:
print("Three digit number")
elif 999 < num < 9999:
print("Four digit number")
else:
print("number is <= 9 or >= 9999")

Output:

Four digit number

Nested If else statement

When there is an if statement (or if..else or if..elif..else) is present inside another if statement (or if..else or if..elif..else) then this is calling the nesting of control statements.

Nested if..else statement example

Here we have a if statement inside another if..else statement block. Nesting control statements makes us to check multiple conditions.

num = -99
if num > 0:
print("Positive Number")
else:
print("Negative Number")
#nested if
if -99<=num:
print("Two digit Negative Number")

Output:

Negative Number
Two digit Negative Number

For Loop

A loop is a used for iterating over a set of statements repeatedly.

Syntax of for loop

for <variable> in <sequence>:  
# body_of_loop that has set of statements
# which requires repeated execution

Here <variable> is a variable that is used for iterating over a <sequence>. On every iteration it takes the next value from <sequence> until the end of sequence is reached.

# Program to print squares of all numbers present in a list

# List of integer numbers
numbers = [1, 2, 4, 6, 11, 20]

# variable to store the square of each num temporary
sq = 0

# iterating over the given list
for val in numbers:
# calculating square of each number
sq = val * val
# displaying the squares
print(sq)

Output:

1
4
16
36
121
400

Function range()

In the above example, we have iterated over a list using for loop. However we can also use a range() function in for loop to iterate over numbers defined by range().

range(n): generates a set of whole numbers starting from 0 to (n-1).
For example:
range(8) is equivalent to [0, 1, 2, 3, 4, 5, 6, 7]

range(start, stop): generates a set of whole numbers starting from start to stop-1.
For example:
range(5, 9) is equivalent to [5, 6, 7, 8]

range(start, stop, step_size): The default step_size is 1 which is why when we didn’t specify the step_size, the numbers generated are having difference of 1. However by specifying step_size we can generate numbers having the difference of step_size.
For example:
range(1, 10, 2) is equivalent to [1, 3, 5, 7, 9]

Lets use the range() function in for loop:

for loop example using range() function

Here we are using range() function to calculate and display the sum of first 5 natural numbers.

# Program to print the sum of first 5 natural numbers

# variable to store the sum
sum = 0

# iterating over natural numbers using range()
for val in range(1, 6):
# calculating sum
sum = sum + val

# displaying sum of first 5 natural numbers
print(sum)

Output:

15

For loop with else block

In Python we can have an optional ‘else’ block associated with the loop. The ‘else’ block executes only when the loop has completed all the iterations.

Lets take an example:

for val in range(5):
print(val)
else:
print("The loop has completed execution")

Output:

0
1
2
3
4
The loop has completed execution

Note: The else block only executes when the loop is finished.

Nested For loop

When a for loop is present inside another for loop then it is called a nested for loop.

Lets take an example of nested for loop.

for num1 in range(3):
for num2 in range(10, 14):
print(num1, ",", num2)

Output:

0 , 10
0 , 11
0 , 12
0 , 13
1 , 10
1 , 11
1 , 12
1 , 13
2 , 10
2 , 11
2 , 12
2 , 13

While Loop

While loop is used to iterate over a block of code repeatedly until a given condition returns false.

Difference b/w for loop & while loop

The main difference is that we use while loop when we are not certain of the number of times the loop requires execution, on the other hand when we exactly know how many times we need to run the loop, we use for loop.

Syntax of while loop

while condition:
#body_of_while

The body_of_while is set of Python statements which requires repeated execution. These set of statements execute repeatedly until the given condition returns false.

Flow of while loop

1. First the given condition is checked, if the condition returns false, the loop is terminated and the control jumps to the next statement in the program after the loop.
2. If the condition returns true, the set of statements inside loop are executed and then the control jumps to the beginning of the loop for next iteration.

These two steps happen repeatedly as long as the condition specified in while loop remains true.

While loop example

Here is an example of while loop. In this example, we have a variable num and we are displaying the value of num in a loop, the loop has a increment operation where we are increasing the value of num. This is very important step, the while loop must have a increment or decrement operation, else the loop will run indefinitely, we will cover this later in infinite while loop.

num = 1
# loop will repeat itself as long as
# num < 10 remains true
while num < 10:
print(num)
#incrementing the value of num
num = num + 3

Output:

1
4
7

Infinite while loop

Example 1:
This will print the word ‘hello’ indefinitely because the condition will always be true.

while True:
print("hello")

Example 2:

num = 1
while num<5:
print(num)

This will print ‘1’ indefinitely because inside loop we are not updating the value of num, so the value of num will always remain 1 and the condition num < 5 will always return true.

Nested while loop

When a while loop is present inside another while loop then it is called nested while loop. Lets take an example to understand this concept.

i = 1
j = 5
while i < 4:
while j < 8:
print(i, ",", j)
j = j + 1
i = i + 1

Output:

1 , 5
2 , 6
3 , 7

while loop with else block

We can have a ‘else’ block associated with while loop. The ‘else’ block is optional. It executes only after the loop finished execution.

num = 10
while num > 6:
print(num)
num = num-1
else:
print("loop is finished")

Output:

10
9
8
7
loop is finished

Break Statement

The break statement is used to terminate the loop when a certain condition is met.

The break statement is generally used inside a loop along with a if statement so that when a particular condition (defined in if statement) returns true, the break statement is encountered and the loop terminates.

Syntax of break statement

The syntax of break statement.

break

Flow diagram of break

Example of break statement

In this example, we are searching a number ’88’ in the given list of numbers. The requirement is to display all the numbers till the number ’88’ is found and when it is found, terminate the loop and do not display the rest of the numbers.

# program to display all the elements before number 88
for num in [11, 9, 88, 10, 90, 3, 19]:
print(num)
if(num==88):
print("The number 88 is found")
print("Terminating the loop")
break

Output:

11
9
88
The number 88 is found
Terminating the loop

Note: You would always want to use the break statement with a if statement so that only when the condition associated with ‘if’ is true then only break is encountered. If you do not use it with ‘if’ statement then the break statement would be encountered in the first iteration of loop and the loop would always terminate on the first iteration.

Continue Statement

The continue statement is used inside a loop to skip the rest of the statements in the body of loop for the current iteration and jump to the beginning of the loop for next iteration. The break and continue statements are used to alter the flow of loop, break terminates the loop when a condition is met and continue skip the current iteration.

Syntax of continue statement

The syntax of continue statement

continue

Flow diagram of continue

Example of continue statement

Lets say we have a list of numbers and we want to print only the odd numbers out of that list. We can do this by using continue statement.
We are skipping the print statement inside loop by using continue statement when the number is even, this way all the even numbers are skipped and the print statement executed for all the odd numbers.

# program to display only odd numbers
for num in [20, 11, 9, 66, 4, 89, 44]:
# Skipping the iteration when number is even
if num%2 == 0:
continue
# This statement will be skipped for all even numbers
print(num)

Output:

11
9
89

Pass Statement

The pass statement acts as a placeholder and usually used when there is no need of code but a statement is still required to make a code syntactically correct. For example we want to declare a function in our code but we want to implement that function in future, which means we are not yet ready to write the body of the function. In this case we cannot leave the body of function empty as this would raise error because it is syntactically incorrect, in such cases we can use pass statement which does nothing but makes the code syntactically correct.

Pass statement vs comment

You may be wondering that a python comment works similar to the pass statement as it does nothing so we can use comment in place of pass statement. Well, it is not the case, a comment is not a placeholder and it is completely ignored by the Python interpreter while on the other hand pass is not ignored by interpreter, it says the interpreter to do nothing.

Pass statement example

If the number is even we are doing nothing and if it is odd then we are displaying the number.

for num in [20, 11, 9, 66, 4, 89, 44]:
if num%2 == 0:
pass
else:
print(num)

Output:

11
9
89

--

--

Razia Khan

I am a web developer and a big fan of free and open source software. My experience primarily lies with the use of Python, Django (a Python-based web framework).