DEV Community

≀Paulo Portela
≀Paulo Portela

Posted on • Updated on

Python: A Guide to For and While Loops

Introduction

In this chapter, we'll explore the use of for and while loops in Python. We'll start by showing how to create a loop using the range function, which allows us to iterate over a sequence of numbers. For example, we can use range to create a loop that prints the numbers 1 to 10:

for i in range(1, 11):
    print(i)
Enter fullscreen mode Exit fullscreen mode
Output:
1
2
3
4
5
6
7
8
9
10
Enter fullscreen mode Exit fullscreen mode

Using Range with Specific Intervals

We can also use range to create a loop that iterates over a specific interval, such as every other number between 1 and 10:

for i in range(1, 11, 2):
    print(i)
Enter fullscreen mode Exit fullscreen mode
Output:
1
3
5
7
9
Enter fullscreen mode Exit fullscreen mode

Using the Underscore as a Placeholder Variable

In Python, we can use an underscore (_) as a placeholder variable when we don't need the value of the variable in the loop. For example, if we want to repeat an action 5 times, we can use a for loop with an underscore as the loop variable:

for _ in range(5):
    print("Exploring the universe!")
Enter fullscreen mode Exit fullscreen mode
Output:
Exploring the universe!
Exploring the universe!
Exploring the universe!
Exploring the universe!
Exploring the universe!
Enter fullscreen mode Exit fullscreen mode

Iterating Through a List

We can also use a for loop to iterate through a list. For example, let's say we have a list of numbers, and we want to calculate the sum of these numbers:

numbers = [1, 2, 3, 4, 5]
total = 0
for number in numbers:
    total += number
print(total)
Enter fullscreen mode Exit fullscreen mode
Output:
15
Enter fullscreen mode Exit fullscreen mode

Using the Else Statement in a For Loop

We can use the else statement in a for loop to specify a block of code to be executed when the loop has finished iterating. For example, let's say we want to search for a specific number in our list of numbers, and print a message when we find it:

numbers = [1, 2, 3, 4, 5]
for number in numbers:
    if number == 6:
        print("Number found!")
        break
else:
    print("Number not found!")
Enter fullscreen mode Exit fullscreen mode
Output:
Number not found!
Enter fullscreen mode Exit fullscreen mode

In this example, the else block is executed because the break statement is never reached, meaning that the loop completed all iterations without finding the number 6.

Using the Break Statement

We can use the break statement to exit a loop prematurely. For example, let's say we want to search for the first even number in our list of numbers:

numbers = [1, 2, 3, 4, 5]
for number in numbers:
    if number % 2 == 0:
        print(number)
        break
Enter fullscreen mode Exit fullscreen mode
Output:
2
Enter fullscreen mode Exit fullscreen mode

In this example, the break statement is used to exit the loop as soon as the first even number is found.

Using the Enumerate Function

We can use the enumerate function to iterate through a list and keep track of the index of each element. For example, let's say we want to print the index and value of each number in our list:

numbers = [1, 2, 3, 4, 5]
for i, number in enumerate(numbers):
    print(i, number)
Enter fullscreen mode Exit fullscreen mode
Output:
0 1
1 2
2 3
3 4
4 5
Enter fullscreen mode Exit fullscreen mode

Using the Zip Function

We can use the zip function to iterate over two or more lists in parallel. For example, let's say we have two lists, one containing the names of shapes and another containing their areas, and we want to print the name and area of each shape:

shapes = ["Circle", "Square", "Rectangle", "Triangle"]
areas = [3.14, 4, 6, 4.5]
for shape, area in zip(shapes, areas):
    print(f"{shape}: {area}")
Enter fullscreen mode Exit fullscreen mode
Output:
Circle: 3.14
Square: 4
Rectangle: 6
Triangle: 4.5
Enter fullscreen mode Exit fullscreen mode

Using List Comprehension

List comprehension is a concise way to create lists. For example, let's say we want to create a list of the squares of the numbers from 1 to 10:

squares = [x**2 for x in range(1, 11)]
print(squares)
Enter fullscreen mode Exit fullscreen mode
Output:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Enter fullscreen mode Exit fullscreen mode

Using While Loops

We can also use a while loop to iterate while a certain condition is true. For example, let's say we want to calculate the factorial of a number using a while loop:

n = 5
factorial = 1
while n > 1:
    factorial *= n
    n -= 1
print(factorial)
Enter fullscreen mode Exit fullscreen mode
Output:
120
Enter fullscreen mode Exit fullscreen mode

Using the Walrus Operator

In Python 3.8, a new feature called the "walrus operator" (:=) was introduced, which allows us to assign values to variables as part of an expression. For example, let's say we want to calculate the factorial of a number using a while loop and the walrus operator:

n = 5
factorial = 1
while (n := n - 1) > 0:
    factorial *= n + 1
print(factorial)
Enter fullscreen mode Exit fullscreen mode
Output:
120
Enter fullscreen mode Exit fullscreen mode

In this example, the walrus operator is used to decrement the value of n by 1 and assign the result back to n as part of the condition in the while loop.

Conclusion

For and while loops are essential tools for controlling the flow of a program in Python. They provide a flexible and versatile way to iterate over sequences and repeat actions, allowing us to solve complex problems with ease.

Top comments (0)