Loops: For loop, while loop


Code can be repeated using a loop. Lines of code can be repeated N times, where N is manually configurable. In practice, it means code will be repeated until a condition is met. This condition is usually (x >=N) but it’s not the only possible condition.

Python has 3 types of loops: for loops, while loops and nested loops.

Related Course:
Complete Python Bootcamp: Go from zero to hero in Python

For loop

We can iterate a list using a for loop

#!/usr/bin/python
 
items = [ "Abby","Brenda","Cindy","Diddy" ]
 
for item in items:
    print(item)

Visualization of for loop:
for loop

The for loop can be used to repeat N times too:

#!/usr/bin/python
 
for i in range(1,10):
    print(i)

While loop

If you are unsure how many times a code should be repeated, use a while loop.
For example,

correctNumber = 5
guess = 0
 
while guess != correctNumber:
    guess = int(input("Guess the number: "))
 
    if guess != correctNumber:
        print('False guess')
 
print('You guessed the correct number')

Nested loops

We can combine for loops using nesting. If we want to iterate over an (x,y) field we could use:

#!/usr/bin/python
 
for x in range(1,10):
    for y in range(1,10):
        print("(" + str(x) + "," + str(y) + ")")

Nesting is very useful, but it increases complexity the deeper you nest.


Scope
Python range

21 thoughts on “Loops: For loop, while loop

  1. Sagi Sulimani - April 22, 2017

    Hi Frank.
    There is a little mistake in the “While loop” example. It should be:

        guess = int(input("Guess the number: "))

    Otherwise, the compiler will compare between string and integer, and ‘5’!=5.
    Except it – excellent!

    1. Frank - April 22, 2017

      Thanks Sagi!
      I’ve updated the article.

  2. Prashant Raina - January 28, 2016

    whats wrong with this code not generating primes as i expected

    i=3
    num=int(input("enter the no. upto which u want the primes: "))
    arr=[2]
    print(2)
    while i<num:
        j=0
        while j<len(arr):
            if i%arr[j]==0:
                i=i+1
                j=len(arr)
            else:
                j=j+1
                print i
                arr[len(arr)]=i
    1. Frank - January 30, 2016

      The conditions in the while loops are never true. I fixed your code:

      num=int(input("enter the no. upto which u want the primes: "))
       
      arr=[2]
      print(arr)
       
      i = 2
      while max(arr) < num:
       
         prime = True
         for p in arr:
             if i % p == 0:
                 prime = False
                 break
       
         if prime:
             arr.append(i)
       
         i = i + 1  
       
         print(arr)
       
      print(arr)

      You can see the prime numbers being added to the array in the loop.

  3. Deepak V a - December 3, 2015

    why are you using str() in print statement i am getting even i used variable directly

    1. Frank - December 3, 2015

      sometimes that may lead to problems as they have different datatypes,just being cautious.

  4. Amina Khatun - August 31, 2015

    From where I should start I can’t understand? How to save, How to edit, How to run, These are my problems.

    1. Frank - August 31, 2015

      Hi Amina, start from here: https://pythonspot.com/getting-started/
      Download an editor like PyCharm to edit, save and run your code.