DEV Community

Cover image for Python Trick: The else Clause on Loops
Developer Service
Developer Service

Posted on

Python Trick: The else Clause on Loops

Many Python programmers know that the else keyword can be used with if statements, but did you know it can also be used with for and while loops?

This lesser-known feature can simplify your code in certain scenarios.


How It Works

In Python, you can attach an else clause to a for or while loop.

The else block executes after the loop completes normally, which means it runs if the loop is not terminated by a break statement.

This can be particularly useful for situations where you need to perform some action only if the loop didn't encounter an early exit condition.

Here’s an example to illustrate:

# Search for a prime number in a range
def find_prime(n):
    for i in range(2, n):
        if n % i == 0:
            print(f"{n} is not a prime number.")
            break
    else:
        print(f"{n} is a prime number.")


find_prime(29)  # Output: 29 is a prime number.
find_prime(30)  # Output: 30 is not a prime number.

# Output:
# 29 is a prime number.
# 30 is not a prime number.

Enter fullscreen mode Exit fullscreen mode

In this example, the else block only runs if the for loop completes without encountering a break.

If a factor is found, it breaks out of the loop and skips the else block.


Why It’s Cool

The else clause on loops can help make your code more concise and eliminate the need for additional flags or checks to determine if a loop completed successfully.

It’s a neat feature that adds expressive power to your loop constructs, often leading to cleaner and more readable code.

Top comments (2)

Collapse
 
king_triton profile image
King Triton

Wow, I never realized the else clause could be used with loops in Python! This is such a neat and concise way to handle cases where you need to check if the loop completed without an early exit. The example with finding prime numbers really clarifies its usefulness. This will definitely help me write cleaner and more readable code. Thanks for the insightful explanation!

Collapse
 
devasservice profile image
Developer Service

Thanks