5 different ways to use an else block in python

Suresh Kumar - Apr 21 '22 - - Dev Community

There are several ways to use an else block in python. Lets look at each method and its usecase.

1. if else

This is commonly used if else block. if block is executed if the condition is true otherwise else block will be executed.


x = True

if x:
    print 'x is true'
else:
    print 'x is not true'

Enter fullscreen mode Exit fullscreen mode

2. if else shorthand

This if else shorthand method is a ternary operator equivalent in pythom if else statement. If you loot at the code, boolean value True will assigned to the variable is_pass if the expression mark >= 50 is true, otherwise False will be assigned.


mark = 40
is_pass = True if mark >= 50 else False
print "Pass? " + str(is_pass)

Enter fullscreen mode Exit fullscreen mode

3. for-else loop

We can use an else block on a for loop too. The else block is executed only when the for loop completes its iteration without breaking out of the loop.

for loop below, will print from 0 to 10 and then 'For loop completed the execution' as it doesn't break out of the for loop.


for i in range(10):
    print i
else:
    print 'For loop completed the execution'

Enter fullscreen mode Exit fullscreen mode

for loop below, will print from 0 to 5 and then breaks out of the for loop, so else block will not be executed.

for i in range(10):
    print i
    if i == 5:
        break
else:
    print 'For loop completed the execution'

Enter fullscreen mode Exit fullscreen mode

4. while-else loop

We can also use an else block with while loop, The else block is executed only when the while loop completes its execution without breaking out of the loop.

a = 0
loop = 0
while a <= 10:
    print a
    loop += 1
    a += 1
else:
    print "While loop execution completed"
Enter fullscreen mode Exit fullscreen mode
a = 50
loop = 0
while a > 10:
    print a
    if loop == 5:
        break
    a += 1
    loop += 1
else:
    print "While loop execution completed"
Enter fullscreen mode Exit fullscreen mode

5. else on try-except

We can use an else block on a try except block too. This is type of not required in most cases. The else block is only executed if the try block doesn't throw any exeception.

In this code, else block will be executed if the file open operation doesn't throw i/o exception.

file_name = "result.txt"
try:
    f = open(file_name, 'r')
except IOError:
    print 'cannot open', file_name
else:
    # Executes only if file opened properly
    print file_name, 'has', len(f.readlines()), 'lines'
    f.close()
Enter fullscreen mode Exit fullscreen mode

follow me on twitter to get more content and connect with me.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .