Python for loop
Introduction to the for Loop
In Python, the for loop is used to iterate over elements of a sequence (such as lists, strings, tuples, etc.). Unlike languages like C or Pascal, where for loops are used to iterate over a range of numbers, Python's for loop is more versatile, allowing you to iterate over any iterable object, such as lists, dictionaries, and strings.
Syntax of a for Loop
for variable_name in sequence : statement_1 statement_2 ....
Parameter:
Name | Description |
---|---|
variable_name | The variable that takes the value of each item in the sequence during each iteration of the loop. |
sequence | A sequence of values that will be assigned to the target variable variable_name. Values are provided using a list or a string or from the built-in function range(). |
statement_1, statement_2 ..... | The block of code to be executed for each item in the sequence. |
Example: Iterating over a List
>>> #The list has four elements, indices start at 0 and end at 3
>>> color_list = ["Red", "Blue", "Green", "Black"]
>>> for c in color_list:
print(c)
Red
Blue
Green
Black
>>>
In this example, ‘color_list’ contains a sequence of color names. The for loop assigns the first item ("Red") to the variable c, then executes the print(c) statement. This process repeats for each item in the list until all items are printed.
Python for loop and range() function
The range() function returns a list of consecutive integers. The function has one, two or three parameters where last two parameters are optional. It is widely used in for loops. Here is the syntax.
range(a) range(a,b) range(a,b,c)
range(a) : Generates numbers from 0 to a-1
Syntax:
for <variable> in range(<number>):
Example:
>>> for a in range(4):
print(a)
0
1
2
3
>>>
range(a,b): Generates numbers from a to b-1, incrementing by 1.
Syntax:
for "variable" in range("start_number", "end_number"):
Example:
>>> for a in range(2,7):
print(a)
2
3
4
5
6
>>>
range(a,b,c): Generates numbers from a to b-1, incrementing by c.
Example:
>>> for a in range(2,19,5):
print(a)
2
7
12
17
>>>
Python for loop: Iterating over different Data Structures
Example: Iterating over tuple
In this example, we count the number of even and odd numbers from a tuple.
numbers = (1, 2, 3, 4, 5, 6, 7, 8, 9) # Declaring the tuple
count_odd = 0
count_even = 0
for x in numbers:
if x % 2:
count_odd+=1
else:
count_even+=1
print("Number of even numbers :",count_even)
print("Number of odd numbers :",count_odd)
Output:
Number of even numbers:4 Number of odd numbers: 5
In the above example a tuple named numbers is declared which holds the integers 1 to 9.
The best way to check if a given number is even or odd is to use the modulus operator (%).
The operator returns the remainder when dividing two numbers.
Modulus of 8 % 2 returns 0 as 8 is divided by 2, therefore 8 is even and modulus of 5 % 2 returns 1 therefore 5 is odd.
The for loop iterates through the tuple and we test modulus of x % 2 is true or not, for every item in the tuple and the process will continue until we rich the end of the tuple.
When it is true count_even increase by one otherwise count_odd is increased by one.
Finally, we print the number of even and odd numbers through print statements.
Example: Iterating over list
In the following example, the for loop iterates through a list and prints each item along with its type:
datalist = [1452, 11.23, 1+2j, True, 'w3resource', (0, -1), [5, 12],
{"class":'V', "section":'A'}]
for item in datalist:
print ("Type of ",item, " is ", type(item))
Output:
Type of 1452 is <class 'int'> Type of 11.23 is <class 'float'> Type of (1+2j) is <class 'complex'> Type of True is <class 'bool'> Type of w3resource is <class 'str'> Type of (0, -1) is <class 'tuple'> Type of [5, 12] is <class 'list'> Type of {'section': 'A', 'class': 'V'} is <class 'dict'>
Example: Iterating over dictionary
You can use a for loop to iterate over the keys and values of a dictionary.
>>> color = {"c1": "Red", "c2": "Green", "c3": "Orange"}
>>> for key in color:
print(key)
c2
c1
c3
>>>
Following for loop iterates through its values :
>>> color = {"c1": "Red", "c2": "Green", "c3": "Orange"}
>>> for value in color.values():
print(value)
Green
Red
Orange
>>>
Using an else Clause with a for Loop
Python allows you to use an else block with a for loop. The else block is executed after the for loop finishes, unless a break statement is encountered.
Syntax:
for variable_name in sequence : statement_1 statement_2 .... else : statement_3 statement_4 ....
In this example, the else block runs after the loop completes its iterations. However, if the loop encounters a break, the else block will not execute.
Previous: Python If elif else
Next: Python While Loop
Test your Python skills with w3resource's quiz
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics