Python3 For Else
## Python3.x Python for-else Loop
[ Python3 Loop Statements](#)
* * *
In Python, a `for` loop can have an `else` clause. This is a syntax unique to Python, unlike most other programming languages.
The `for-else` structure means: when the loop completes normally (i.e., is not interrupted by a `break`), the code inside the `else` block is executed.
**Word Definition**: `else` means "other", and here it represents "the handling after the loop ends normally".
* * *
## Basic Syntax and Parameters
### Syntax Format
for variable in iterable: loop bodyelse: handling when loop completes normally
### Execution Logic
* **Normal Completion**: After the loop finishes iterating through all elements, the else clause is executed.
* **Terminated by break**: If the loop is interrupted by a break, the else clause is not executed.
* **Abnormal Termination**: If an exception occurs in the loop, the else clause is also not executed.
* * *
## Examples
### Example 1: Basic Usage - Execute on Search Failure
## Example
# Find even numbers in a list, print if found, execute else if not found
numbers =[1,3,5,7,9]
for num in numbers:
if num % 2==0:
print(f"Found even number: {num}")
break
else:
print("No even number found")
print("---")
# Case where list contains even numbers
numbers =[1,3,6,7,9]
for num in numbers:
if num % 2==0:
print(f"Found even number: {num}")
break
else:
print("No even number found")
**Expected Output:**
No even number found---Found even number: 6
**Code Analysis:**
1. First example: Iterates through the entire list (break is not executed), so else is executed.
2. Second example: Executes break after finding an even number, skipping else.
### Example 2: Common Application - Finding Prime Numbers
## Example
# Determine if a number is prime
def is_prime(n):
if n <=1:
return False
for i in range(2,int(n ** 0.5) + 1):
if n % i ==0:
print(f"{n} is not a prime number, divisible by {i}")
return False
else:
# Loop completed normally, meaning no factor was found
print(f"{n} is a prime number")
return True
# Test
is_prime(7)# Output: 7 is a prime number
is_prime(10)# Output: 10 is not a prime number, divisible by 2
**Expected Output:**
7 is a prime number10 is not a prime number, divisible by 2
This is one of the most classic uses of for-else: after a search traversal is completed, if the target is not found, execute else.
### Example 3: Comparison with break
## Example
# Scenario: traverse list to find specific element
fruits =["apple","banana","orange","grape"]
# Using for-else
print("=== Using for-else ===")
for fruit in fruits:
if fruit =="orange":
print(f"Found: {fruit}")
break
print(f"Checking: {fruit}")
else:
print("Target not found")
print("n=== Not using else ===")
# Another approach (without using else)
found =False
for fruit in fruits:
if fruit =="orange":
print(f"Found: {fruit}")
found =True
break
print(f"Checking: {fruit}")
if not found:
print("Target not found")
**Expected Output:**
=== Using for-else ===Checking: apple Checking: banana Found: orange === Not using else ===Checking: apple Checking: banana Found: orange
The for-else syntax is more concise and does not require an extra flag variable.
### Example 4: Handling Loop Completion
## Example
# Scenario: verify all elements meet condition
scores =[85,90,78,92,88]
# Check if any failing grades
print(&q
YouTip