Python for Loops
In Python, the for loop is used for iterating over sequence types such as list, tuple, set, range, etc. Unlike other programming language, it cannot be used to execute some code repeatedly.
The body of the for
loop is executed for each member element in the sequence. Hence, it doesn't require explicit verification of a boolean expression controlling the loop (as in the while loop).
for x in sequence: statement1 statement2 ... statementN
To start with, a variable x
in the for statement refers to the item at the 0 index in the sequence.
The block of statements with increased uniform indent after the :
symbol will be executed. A variable x
now refers to the next item and repeats the body of the loop till the sequence is exhausted.
The following example demonstrates the for loop with the list object.
nums = [10, 20, 30, 40, 50]
for i in nums:
print(i)
10
20
30
40
50
The following demonstrates the for loop with a tuple object.
nums = (10, 20, 30, 40, 50)
for i in nums:
print(i)
10
20
30
40
50
The object of any Python sequence data type can be iterated using the for statement.
for char in 'Hello':
print (char)
H
e
l
l
o
The following for
loop iterates over the dictionary using the items() method.
numNames = { 1:'One', 2: 'Two', 3: 'Three'}
for pair in numNames.items():
print(pair)
(1, 'One')
(2, 'Two')
(3, 'Three')
The key-value paris can be unpacked into two variables in the for
loop to get the key and value separately.
numNames = { 1:'One', 2: 'Two', 3: 'Three'}
for k,v in numNames.items():
print("key = ", k , ", value =", v)
key = 1, value = One
key = 2, value = Two
key = 3, value = Three
For Loop with the range() Function
The range
class is an immutable sequence type. The range() returns the range
object that can be used with the for
loop.
for i in range(5):
print(i)
0
1
2
3
4
Exit the For Loop
The execution of the for loop can be stop and exit using the break
keyword on some condition, as shown below.
for i in range(1, 5):
if i > 2 :
break
print(i)
1
2
Continue Next Iteration
Use the continue
keyword to skip the current execution and continue on the next iteration using the continue
keyword on some condition, as shown below.
for i in range(1, 5):
if i > 3:
continue
print(i)
1
2
3
For Loop with Else Block
The else
block can follow the for
loop, which will be executed when the for
loop ends.
for i in range(2):
print(i)
else:
print('End of for loop')
0
1
End of for loop
Nested for Loop
If a loop (for loop or while loop) contains another loop in its body block, we say that the two loops are nested. If the outer loop is designed to perform m iterations and the inner loop is designed to perform n repetitions, the body block of the inner loop will get executed m X n times.
for x in range(1,4):
for y in range(1,3):
print('x = ', x, ', y = ', y)
x = 1, y = 1
x = 1, y = 2
x = 2, y = 1
x = 2, y = 2
x = 3, y = 1
x = 3, y = 2