Python Nested Loops

Advertisements
Advertisements

A python nested loop is loop with in a loop. Python programming allows you to create such loops. Now the choice of loops is totally up to the programmer. You can for-loop inside for-loop, for-loop inside while-loop, while-loop inside a while and so on.Therefore, various combination of loop is possible with deep levels of nesting.

In this article, we will discuss about 4 different types of nesting which are

  1. for-loop within for-loop
  2. for-loop within while-loop
  3. while-loop within while-loop

Note that all kind of loop are interchangeable. A while loop can do the task performed by a for-loop or for-each loop.

For-Loop Within For-Loop

In this example, we are going to print a number triangle. Since, we already know that the number of iterations are fixed. The best choice would be for-loops.

for i in range(1,11):
    for j in range(1,i + 1):
        print(j, end=" ")

In the example above the loop for variable i will run from 1 to 10. For each value of i , the variable j will run up to i + 1.

Advertisements

Note that if range(1, 11), then python will print 1 to 10, not 11. Therefore, range(1, i + 1) will include all numbers from 1 to i leaving last number alone

In the program above, i represents the rows and j represents the columns. therefore, for each i(row) there would be j columns. See the output below.

=== RESTART: C:/Python_projects/Loops/For_loop_inside_For_loop.py =======
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 6 
1 2 3 4 5 6 7 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 10 
>>> 

For-Loop Within While-Loop

In our next example, we will modify the previous program using a for-loop nested inside a while-loop.

i = 1
while i < 11:
   for j in range(1, i + 1):
      print(j, end= " ")
   i = i + 1

The code is very similar to previous one except that now we are using an outer while loop which initializes a variable i, puts termination condition i < 11 and finally increment it for each iteration i = i + 1. The above code will produce similar output as we saw earlier.

== RESTART: C:/Python_projects/Loops/for-loop_inside_while_nested_loops.py ==
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 6 
1 2 3 4 5 6 7 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 10 
>>> 

While-Loop Within While-Loop

In this example, we will be using nested while-loop. This will work exactly like two for-loops.

i = 0
while i < 10:
   j = 0
   while j < i:
      print(j, end=" ")
      j = j+ 1
   i = i + 1
   print()

The output of the program is given below. This time we have started with 0 and ends in 9.

===== RESTART: C:/Python_projects/Loops/Nested_While_loops.py =======
0 
0 1 
0 1 2 
0 1 2 3 
0 1 2 3 4 
0 1 2 3 4 5 
0 1 2 3 4 5 6 
0 1 2 3 4 5 6 7 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 9 
>>> 

Scope of Variable Inside Loop

The scope of the variable is not changing. If the variable is created inside of the loop, then it can be seen as long as you enter the loop at least once. Otherwise, the local variable will be treated as unknown variable and gives Name error.

# Program to print sum of numbers
count = 0
for i in range(10):
   sum = 10
   sum = sum + i;
   count = count + 1
print(sum)

The program above will print the correct value of sum as long as the loop is executed. The variable sum will be created, however, if we do not enter the loop, it will never create sum and return an error while printing.

If you create a global variable like count in the above program. You can use it in any function regardless of whether the loop is entered or not. It will never give a Name error.

Bestseller

Let Us Python – 4th Edition: Python Is Future, Embrace It Fast

This book is for everyone who wish to learn python programming language. It strengthens the foundations, as detailed explanation of programming language concepts are given. Lists down all important points that you need to know related to various topics in an organized manner. Prepares you for coding related interview and theoretical questions. Provides In depth explanation of complex topics and Questions. Focuses on how to think logically to solve a problem. You will learn about Data types, Control flow instructions, console & File Input/output Strings, list & tuples, List comprehension Sets & Dictionaries, Functions & Lambdas Dictionary Comprehension Modules, classes and objects, Inheritance Operator overloading, Exception handling Iterators & Generators, Decorators, and Command-line Parsing

Advertisements
Advertisements
Advertisements