# Iteration - Python

The while statement: The keyword while followed by a test expression (which can be any valid expression), and a colon.

Iteration

## The while statement

The keyword while followed by a test expression (which can be any valid expression), and a colon. Following the header is an indented body. The test expression is evaluated. If it evaluates to True, then the body of the loop is executed. After executing the body, the test expression is evaluated again. While test expression evaluates to True, the body of the loop is executed. When the test expression evaluates to False, the loop is terminated and execution continues with the statement following the body.

while

<test_expression>:

<body>

Eg:

def sequence(n):

while n != 1:

print n,

if n%2 == 0: # n is even

n = n/2

else: # n is odd

n = n*3+1

The condition for this loop is n != 1, so the loop will continue until n is 1, which makes the condition false.

Each time through the loop, the program outputs the value of n and then checks whether it is even or odd. If it is even, n is divided by 2. If it is odd, the value of n is replaced with n*3+1. For example, if the argument passed to sequence is 3, the resulting sequence is 3,10, 5, 16, 8, 4, 2, 1.

## The for Statement

Python’s for statement iterates over the items of any sequence (a list or a string), in the order that they appear in the sequence.

for val in sequence:

Body of for

Eg:

#     Program to find the sum of all numbers stored in a list

#     List of numbers

numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]

#     variable to store the sum sum = 0

#     iterate over the list

for val in numbers:

sum = sum+val

Output: The sum is 48

print("The sum is", sum)

## The range() function

If you do need to iterate over a sequence of numbers, the built-in function range() comes in handy. It generates arithmetic progressions:

Eg:

# Prints out the numbers 0,1,2,3,4

# for x in range(5):

print(x)

This function does not store all the values in memory, it would be inefficient. So it remembers the start, stop, step size and generates the next number on the go.

## Python break and continue

The break statement terminates the loop containing it. Control of the program flows to the statement immediately after the body of the loop.

If break statement is inside a nested loop (loop inside another loop), break will terminate the innermost loop.

The working of break statement in for loop and while loop is shown below.

Eg:

# Prints out 0,1,2,3,4

count = 0

while True:

print(count)

count += 1 if

count >= 5:

break

The continue statement is used to skip the rest of the code inside a loop for the current iteration only. Loop does not terminate but continues on with the next iteration.

The working of continue statement in for and while loop is shown below.

Eg:

# Prints out only odd numbers - 1,3,5,7,9

# for x in range(10):

Check if x is even

if x % 2 == 0:

continue

print(x)

## Python pass statement

The pass statement does nothing. It can be used when a statement is required syntactically but the program requires no action.

Eg:

>>> while True:

.. pass # Busy-wait for keyboard interrupt (Ctrl+C)

...

This is commonly used for creating minimal classes:

>>>class MyEmptyClass:

... pass

...

Another place pass can be used is as a place-holder for a function or conditional body when you are working on new code, allowing you to keep thinking at a more abstract level. The pass is silently ignored:

>>>def initlog(*args):

... pass # Remember to implement this!

Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
Problem Solving and Python Programming : Control Flow, Functions : Iteration - Python |