For loop in Python is used to execute a block of code repeatedly.
In this tutorial, we will learn how to use range(),
break, continue, else and nested loops.
Watch this beginner-friendly Python for loop tutorial to understand how
range(), break, continue,
else with loops and nested for loops work with simple examples.
for x in range(5):
print(x)
Note that the 2nd line print(x) is placed after an indente of one space. Without that we will get an error asking expectd an indented block . The code to be executed within the block is to be kept with indenting as there is no end of for loop like other languages. 0
1
2
3
4
Here is a statement which is outside the loop because there is no indenting at the beginning of the line
for x in range(5):
print(x)
print("I am outside the loop")
Output is here .
0
1
2
3
4
I am outside the loop
In the above code the range is from 0 to 5 ( excluding 5 ) , so we get output from 0 to 4.
for x in range(5, 10):
print(x)
Output is here
5
6
7
8
9
We can add a increment value
for x in range(5, 25, 5):
print(x)
Output is here
5
10
15
20

for x in range(5, 25, 5):
if (x == 15):
continue
print(x)
5
10
20
Using break
for x in range(5, 25, 5):
if (x == 15):
break
print(x)
5
10
for x in range(5, 25, 5):
if (x == 15):
continue
print(x)
else:
print("Out of loop but with else")
print("Out of loop")
Output is here
5
10
20
Out of loop but with else
Out of loop
Code block inside else will be executed in case of continue but not executed in case of break. for x in range(5, 25, 5):
if (x == 15):
break
print(x)
else:
print("Out of loop but with else")
print("Out of loop")
Output is here ( else part is skipped )
5
10
Out of loop
Check how else in for loop is used to display all prime numbers upto 100.
num = 100 # change this value to get all prime numbers
for i in range(2, num - 1):
for j in range(2, i - 1):
if (i % j == 0):
break
else:
print(i, " is a prime number")
Output is
2 is a prime number
3 is a prime number
5 is a prime number
7 is a prime number
-----
-----
83 is a prime number
89 is a prime number
97 is a prime number
names = ["King", "Queen", "Jack & others"]
for str1 in names:
print(str1)
Output is here
King
Queen
Jack & others
When you need both the index position and the corresponding value during iteration, combine the for...in construct with Python's built-in enumerate() function.
# Program to loop through a list while tracking the index
names = ["Alice", "Bob", "Charlie"]
for index, name in enumerate(names):
print(f"Index {index}: {name}")
To unpack and iterate through dictionary key-value pairs seamlessly, use the .items() method inside the for...in structure.
# Program to iterate over keys and values in a dictionary
student = {"name": "John", "age": 20, "grade": "A"}
for key, value in student.items():
print(f"{key}: {value}")
for i in range(5):
for j in range(5):
print('*', end='')
print("")
Output is here
*****
*****
*****
*****
*****
More on Patterns using nested for loops Multiplication table using nested for loops
names=["King","Queen","Jack & others"]
ages=["child","Young","old"]
for str1 in names:
for str2 in ages:
print(str1,str2)
Output is here
King child
King Young
King old
Queen child
Queen Young
Queen old
Jack & others child
Jack & others Young
Jack & others old
list, tuple, string, dictionary, or range()).
True. The exact number of iterations is often unknown beforehand.
| Feature | for Loop |
while Loop |
|---|---|---|
| Control Mechanism | Iterates over items in an iterable or range() |
Evaluates a boolean condition (True / False) |
| Iteration Count | Predetermined by the sequence length | Variable / dependent on condition evaluation |
| Counter Variable | Handled and updated automatically by Python | Must be initialized and modified manually |
| Primary Use Cases | Traversal of lists, ranges, strings, and datasets | Handling user input, game loops, dynamic conditions |
| Infinite Loop Risk | Very low | High (if condition fails to evaluate to False) |

Author
🎥 Join me live on YouTubePassionate about coding and teaching, I publish practical tutorials on PHP, Python, JavaScript, SQL, and web development. My goal is to make learning simple, engaging, and project‑oriented with real examples and source code.