05-Iteration

Loops and Iteration

An Infinite Loop

n = 5

while n > 0 :

print 'Lather’

print 'Rinse'

print 'Dry off!'

n = 0

while n > 0 :

print 'Lather'

print 'Rinse'

print 'Dry off!'

Breaking Out of the Loop

• The break statement ends the current loop and jumps to the statement immediately following the loop

• It is like a loop test that can happen anywhere in the body of the loop

while True:

line = raw_input('> ')

if line == 'done' :

break

print line

print 'Done!'

Continue

The continue statement ends the current iteration and jumps to

the top of the loop and starts the next iteration

while True:

line = raw_input('> ')

if line[0] == '#' :

continue

if line == 'done' :

break

print line

print 'Done!'

Indefinite Loops

• While loops are called “indefinite loops” because they keep going until a logical condition becomes False

• The loops we have seen so far are pretty easy to examine to see if they will terminate or if they will be “infinite loops”

• Sometimes it is a little harder to be sure if a loop will terminate

Definite Loops

• Quite often we have a list of items of the lines in a file - effectively a finite set of things

• We can write a loop to run the loop once for each of the items in a set using the Python for construct

• These loops are called “definite loops” because they execute an exact number of times

• We say that “definite loops iterate through the members of a set”

for i in [5, 4, 3, 2, 1] :

print i

print 'Blastoff!'

The "is" and is not " Operator

• Python has an is operator that can be used in logical expressions

• Implies “is the same as”

• Similar to, but stronger than ==

• is not also is a logical operator

smallest = None

print 'Before'

for value in [3, 41, 12, 9, 74, 15] :

if smallest is None :

smallest = value

elif value < smallest :

smallest = value

print smallest, value

print 'After', smallest