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.
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)
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!
Thanks