Python for Loop

0 0
Read Time:4 Minute, 39 Second

What are for loops?

In Python, for loops are a powerful tool for automating repetitive tasks. They allow you to execute a block of code multiple times, each time with a different element from a collection of data. This collection is called an iterable, which can be a list, tuple, string, or any object that can be traversed one element at a time.

Basic for loop structure:

for item in iterable:
    # Code to be executed for each item
  • for: This keyword marks the beginning of the for loop.
  • item: This is a temporary variable that will hold each element from the iterable during each iteration of the loop. You can choose any meaningful name for this variable.
  • in: This keyword specifies that you’re iterating over the elements in the iterable.
  • iterable: This is the collection of data you want to loop through.
  • Indented block: The code you want to execute for each item in the iterable must be indented (usually with four spaces). This indentation tells Python which lines are part of the loop.

Example: Printing elements of a list

fruits = ["ūüćŹ", "ūüćĆ", "ūüćí"]

for fruit in fruits:
    print(fruit)
"""
Output:
ūüćŹ 
ūüćĆ 
ūüćí 
"""

Explanation:

  1. We define a list fruits containing some fruit names.
  2. The for loop starts with for fruit in fruits.
  3. In each iteration, the current fruit name is assigned to the variable fruit.
  4. The indented line print(fruit) prints the value of fruit (the current fruit name).
  5. The loop continues until all elements in fruits have been processed.

Key points to remember:

  • Indentation is crucial in Python for loops. The code within the indented block is executed for each item in the iterable.
  • The item variable can be named anything you like, but it’s a good practice to choose a descriptive name that reflects the type of data it holds.
  • For loops can be used to iterate through any iterable, not just lists.
  • You can use multiple for loops to create nested loops, which iterate over multiple iterables simultaneously.

Additional concepts:

  • range() function: This function helps you create a sequence of numbers to loop through. It takes an optional start, stop, and step value. For example, range(5) creates a sequence from 0 to 4 (excluding 5).
  • break statement: This exits the loop prematurely when a certain condition is met.
  • continue statement: This skips the current iteration of the loop and moves on to the next one

The break Statement

With the break statement we can stop the loop before it has looped through all the items:

Example

Exit the loop when x is “banana”:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)
  if x == "banana":
    break

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)

The continue Statement

With the continue statement we can stop the current iteration of the loop, and continue with the next:

Example

Do not print banana:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    continue
  print(x)

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.

Example

Using the range() function:

for x in range(6):
  print(x)

Note 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):

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):

Example

Increment the sequence with 3 (default is 1):

for x in range(2, 30, 3):
  print(x)

Else in For Loop

The else keyword in a for loop specifies a block of code to be executed when the loop is finished:

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!")

Note: The else block will NOT be executed if the loop is stopped by a break statement.

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!")

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”:

Example

Print each adjective for every fruit:

adjective = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]

for x in adj:
  for y in fruits:
    print(x, y)

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.

Example

for x in [0, 1, 2]:
  pass
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %