Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

What is used for in Python

Understanding the for Loop in Python

When you're just starting out with programming, one of the first and most important concepts you'll encounter is the loop. Think of a loop like a record player that keeps playing your favorite track over and over again until you decide to stop it. In programming, a loop repeats a block of code multiple times. Python, like many other programming languages, uses a type of loop called the for loop. This loop is one of the most common tools you'll use to tell your program to run a set of instructions repeatedly.

The Basics of for Loop

The for loop in Python is used to iterate over a sequence. Now, what do we mean by "iterate"? Imagine you have a collection of colored balls in a basket, and you want to take each ball out one by one to examine its color. In programming terms, iterating would mean going through each ball systematically.

In Python, sequences can be a list, a tuple, a dictionary, a set, or a string. Let's start with a simple example using a list:

colors = ['red', 'blue', 'green', 'yellow']

for color in colors:
    print(color)

In this code, color is a temporary variable that takes the value of each element in the colors list one by one. The print(color) statement is executed for each element, so the output will be:

red
blue
green
yellow

Looping Through a Range

Sometimes you want to repeat an action a certain number of times. Python has a built-in function called range() that makes this easy. When you loop through a range, you're telling Python to repeat an action for a sequence of numbers.

for number in range(5):
    print(number)

This will output:

0
1
2
3
4

Notice how it starts at 0 and ends at 4, not 5. This is because range(5) generates a sequence of numbers from 0 up to, but not including, 5.

Nested Loops

A nested loop is like having a smaller carousel spinning on a larger one. You can use one for loop inside another for loop to iterate over multiple sequences. Here's an example:

for x in range(3):
    for y in ['a', 'b', 'c']:
        print(x, y)

The output will be:

0 a
0 b
0 c
1 a
1 b
1 c
2 a
2 b
2 c

The outer loop runs the inner loop completely before moving on to the next iteration.

The for Loop with Dictionaries

Dictionaries in Python are like phone books that store pairs of information - a name and a phone number. In the case of a dictionary, we call these pairs keys and values. You can loop through a dictionary to access these pairs.

phone_book = {'Alice': '555-1234', 'Bob': '555-5678', 'Charlie': '555-9999'}

for name in phone_book:
    print(name, phone_book[name])

This will output:

Alice 555-1234
Bob 555-5678
Charlie 555-9999

Here, name is the key, and phone_book[name] gives us the corresponding value.

Breaking Out of a Loop

Sometimes, you might want to stop the loop before it has gone through all the items. For this, you use the break statement. Imagine you're looking for a golden ticket in a stack of envelopes. Once you find it, you don't need to keep looking through the rest.

for number in range(100):
    print(number)
    if number == 42:
        print("Found the golden ticket!")
        break

This will stop printing numbers once it reaches 42 and finds the "golden ticket."

Skipping Iterations with continue

What if you want to skip over some items in the sequence? That's where continue comes in. It's like having a remote control that can skip songs in a playlist. If you encounter a song you don't like, you just skip to the next one.

for number in range(10):
    if number % 2 == 0:  # Check if the number is even
        continue
    print(number)

This will print only the odd numbers from 1 to 9.

Using else with for Loops

An interesting feature in Python is the ability to attach an else block to a for loop. The else block runs after the loop finishes normally, meaning it didn't encounter a break statement. It's like saying, "if the loop didn't get interrupted, do this."

for number in range(3):
    print(number)
else:
    print("Loop finished normally.")

The output will be:

0
1
2
Loop finished normally.

Practical Examples

Let's look at some practical examples of how for loops can be used.

Creating a Multiplication Table

for i in range(1, 11):
    for j in range(1, 11):
        print(f"{i} x {j} = {i*j}")
    print("-" * 20)

This nested loop prints a multiplication table from 1 to 10.

Filtering a List

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = []

for number in numbers:
    if number % 2 == 0:
        even_numbers.append(number)

print(even_numbers)

This filters out the even numbers from a list and stores them in a new list.

Summing a List of Numbers

numbers = [1, 2, 3, 4, 5]
total = 0

for number in numbers:
    total += number

print(f"The sum is: {total}")

Here, we're adding up all the numbers in a list to find the total sum.

Conclusion

The for loop is a versatile tool in Python that can help you perform repetitive tasks efficiently. Whether you're iterating through lists, generating sequences with range(), or controlling the flow with break and continue, mastering the for loop will open up a world of possibilities in your coding journey.

As you continue to learn and practice, you'll find that the for loop, much like a trusty pocketknife, is an indispensable part of your programming toolkit. It's a simple yet powerful concept that, once understood, can be applied to solve an array of problems, from the most straightforward to the highly complex.

So, go ahead and experiment with for loops. Try creating your own sequences, play with nested loops, and see what you can build. With each iteration and every loop you write, you'll be one step closer to becoming a proficient Python programmer. Happy coding!