3.0 Python: For Loops
3.1 Python For Loops
A for
loop is used for iterating over a sequence (that is either a list, a tuple, a dictionary, a set, or a string).
This is less like the for
keyword in other programming languages, and works more like an iterator method as found in other object-orientated programming languages.
With the for
loop we can execute a set of statements, once for each item in a list, tuple, set etc.
3.1.1 Example
Print each fruit in a fruit list:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
The for
loop does not require an indexing variable to set beforehand.
3.2 Looping Through a String
Even strings are iterable objects, they contain a sequence of characters:
3.2.1 Example
Loop through the letters in the word "banana":
for x in "banana":
print(x)
3.3 The break Statement
With the break
statement we can stop the loop before it has looped through all the items:
3.3.1 Example
Exit the loop when x
is "banana"
:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
3.3.2 Example
Exit the loop when x
is "banana"
, but this time the break comes before the print:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
break
print(x)
3.4 The continue Statement
With the continue
statement we can stop the current iteration of the loop, and continue with the next:
3.4.1 Example
Do not print banana:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
3.5 The range() Function
To loop through a set of code a specified number of times, we can use the range()
function,
The range()
function returns a sequence of numbers, starting from 0 by default, and increments by 1 (by default), and ends at a specified number.
3.5.1 Example
Using the range()
function:
for x in range(6):
print(x)
That range(6)
is not the values of 0 to 6, but the values 0 to 5.
The range()
function defaults to 0 as a starting value, however it is possible to specify the starting value by adding a parameter: range(2, 6)
, which means values from 2 to 6 (but not including 6):
3.5.2 Example
Using the start parameter:
for x in range(2, 6):
print(x)
The range()
function defaults to increment the sequence by 1, however it is possible to specify the increment value by adding a third parameter: range(2, 30, 3)
:
3.5.3 Example
Increment the sequence with 3
(default is 1):
for x in range(2, 30, 3):
print(x)
3.6 Else in For Loop
The else
keyword in a for
loop specifies a block of code to be executed when the loop is finished:
3.6.1 Example
Print all numbers from 0 to 5, and print a message when the loop has ended:
for x in range(6):
print(x)
else:
print("Finally finished!")
3.6.2 Example
Break the loop when x
is 3
, and see what happens with the else
block:
for x in range(6):
if x == 3:
break
print(x)
else:
print("Finally finished!")
3.7 Nested Loops
A nested loop is a loop inside a loop.
The "inner loop" will be executed one time for each iteration of the "outer loop":
3.7.1 Example
Print each adjective for every fruit:
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for f in fruits:
for a in adj:
print(f, a)
3.8 The pass Statement
for
loops cannot be empty, but if you for some reason have a for
loop with no content, put in the pass
statement to avoid getting an error.
3.8.1 Example
for x in [0, 1, 2]:
pass