loops in python
Python programming language provides the following types of loops to handle looping requirements. Python provides three ways for executing the loops. While all the ways provide similar basic functionality, they differ in their syntax and condition checking time.
While Loop in Python
In python, a while loop is used to execute a block of statements repeatedly until a given condition is satisfied. And when the condition becomes false, the line immediately after the loop in the program is executed.
while expression: statement(s)
All the statements indented by the same number of character spaces after a programming construct are considered to be part of a single block of code. Python uses indentation as its method of grouping statements.
Hello Geek Hello Geek Hello Geek
Using else statement with while loops
As discussed above, while loop executes the block until a condition is satisfied. When the condition becomes false, the statement immediately after the loop is executed.
The else clause is only executed when your while condition becomes false. If you break out of the loop, or if an exception is raised, it won’t be executed.
If else like this:
if condition: # execute these statements else: # execute these statements
and while loop like this are similar
while condition: # execute these statements else: # execute these statements
Hello Geek Hello Geek Hello Geek In Else Block
Single statement while block
Just like the if block, if the while block consists of a single statement then we can declare the entire loop in a single line as shown below:
Note: It is suggested not to use this type of loops as it is a never ending infinite loop where the condition is always true and you have to forcefully terminate the compiler.
For Loop in Python
For loops are used for sequential traversal. For example: traversing a list or string or array etc. In Python, there is no C style for loop, i.e., for (i=0; i<n; i++). There is “for in” loop which is similar to for each loop in other languages. Let us learn how to use for in loop for sequential traversals.
for iterator_var in sequence: statements(s)
It can be used to iterate over a range and iterators.
0 1 2 3
Example with List, Tuple, string, and dictionary iteration using For Loops
List Iteration geeks for geeks Tuple Iteration geeks for geeks String Iteration G e e k s Dictionary Iteration xyz 123 abc 345
Iterating by the index of sequences:
We can also use the index of elements in the sequence to iterate. The key idea is to first calculate the length of the list and in iterate over the sequence within the range of this length.
See the below example:
geeks for geeks
Using else statement with for loops:
We can also combine else statement with for loop like in while loop. But as there is no condition in for loop based on which the execution will terminate so the else block will be executed immediately after for block finishes execution.
Below example explains how to do this:
geeks for geeks Inside Else Block
Python programming language allows to use one loop inside another loop. Following section shows few examples to illustrate the concept.
Syntax: for iterator_var in sequence: for iterator_var in sequence: statements(s) statements(s)
The syntax for a nested while loop statement in the Python programming language is as follows:
while expression: while expression: statement(s) statement(s)
A final note on loop nesting is that we can put any type of loop inside of any other type of loop. For example, a for loop can be inside a while loop or vice versa.
1 2 2 3 3 3 4 4 4 4
Loop Control Statements
Loop control statements change execution from their normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed. Python supports the following control statements.
It returns the control to the beginning of the loop.
Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k
It brings control out of the loop
Current Letter : e
We use pass statement to write empty loops. Pass is also used for empty control statements, functions and classes.
Last Letter : s
How for loop in Python works internally?
Before proceeding to this section, you should have a prior understanding of Python Iterators.
Firstly, lets see how a simple for loop looks like.
apple orange kiwi
Here we can see the for loops iterates over iterable object fruit which is a list. Lists, sets, dictionaries are few iterable objects while an integer object is not an iterable object.
For loops can iterate over any iterable object (example: List, Set, Dictionary, Tuple or String).
Now with the help of the above example, let’s dive deep and see what happens internally here.
- Make the list (iterable) an iterable object with help of the iter() function.
- Run an infinite while loop and break only if the StopIteration is raised.
- In the try block, we fetch the next element of fruits with the next() function.
- After fetching the element we did the operation to be performed with the element. (i.e print(fruit))
apple orange kiwi
We can see that under the hood we are calling iter() and next() method.