Introduction
A loop is a way for a programming language to repeat a block of code multiple times. Doing the exact same thing repeatedly is not often useful and rather boring, that’s why loops often use a different value for a variable in each repetition. The Python for
loop does that by assigning the variable from an iterable object, (such as a list or tuple). The iterable object, which implements a standard Python protocol for returning items in a sequence, is called by the for loop behind the scenes, to return the next item in each iteration.
Basic Python for Loop Syntax
The Python for loop syntax consists of the for
keyword, a variable that represents the current element in the iterable sequence, the in
keyword, and the iterable object itself, followed by a colon :
. The code block, which is indented below the for
statement, is executed for each element in the sequence.
Indentation is crucial for the correct execution of the code within the
for
loop. Python relies on indentation to determine the scope of code blocks.
Here’s the syntax of the basic for
loop:
for element in iterable: loop-block
element
: The variable that represents the current item in the sequence. The for loop assigns this variable one item from the iterable at each repetition of the loop.iterable
: The iterable over which the loop iterates.loop-block
: The code that will execute for each element in the sequence. This code block is also called the body of the loop.
Example:
fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit)
Output:
apple banana cherry
In the example above, the for
loop iterates over the list of fruits, and the print
statement inside the loop block is executed for each item, resulting in the output of each fruit on a new line.
The range() Function
The range()
function is often used in conjunction with for
loops to generate a sequence of numbers. It takes up to three arguments start
, stop
, and step
and creates an iterable that returns the integers from start
up to stop
(non-inclusive), skipping step
each time.
A for
loop can conveniently iterate over the numbers generated by range()
.
Here’s the syntax using the range()
function with a for
loop:
for i in range(start, stop, step): loop-block
i
: The variable that represents the current number in the sequence.start
: The starting value of the sequence (default to 0).stop
: The end value of the sequence. The stop point is non-inclusive, meaning the sequence with go up to but not include the value ofstop
.step
: The step or increment between numbers (default to 1).
Example:
for i in range(1, 5): print(i)
Output:
1 2 3 4
In the example above, the for
loop iterates over the numbers generated by range(1, 5)
, and the print
statement inside the loop block is executed for each number.
Example:
for i in range(1, 10, 2): print(i)
Output:
1 3 5 7 9
The above example uses the step
parameter to step by 2 and print only the odd numbers from 1 to 9.
Example:
for i in range(5): print(i)
Output:
0 1 2 3 4
The final range()
example above demonstrates utilizing the default value of 0 for start
. The result is a printout of a sequence of 5 numbers that starts with 0 and ends with 4.
Nested for Loops
You can also nest for
loops within each other to create more complex iteration patterns, especially useful when working with nested data structures.
Example:
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] for row in matrix: for num in row: print(num, end=" ") print()
Output:
1 2 3 4 5 6 7 8 9
In the example above, the outer for
loop iterates over each row of a matrix, and the inner for
loop iterates over each element in the row, printing the matrix in a readable format. Note that in the inner for
, the iterator is the loop variable row
of the outer for
.
Summary & Reference for the Python for Loop
The Python for
loop is a construct for executing a block of code repeatedly for each item in an iterable.
Its basic syntax uses the for
keyword, a variable representing the current element, the in
keyword, and the iterable object followed by a colon :
.
for element in sequence: loop-block
Here is an example that prints items in a list using a for
loop:
fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit)
The range()
function is commonly used with for
loops to generate a sequence of numbers. It takes start
, stop
, and step
arguments, allowing for flexible iteration over numeric ranges.
for i in range(start, stop, step): loop-block
Nested for
loops enable the iteration over complex data structures, such as matrices or nested lists, providing a way to traverse multiple levels of elements.
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] for row in matrix: for num in row: print(num, end=" ") print()