Loops

Python knows break and continue. The else clause is executed, if for is normally exhausted. Here are loop examples:

#!/usr/local/bin/python

a = [ 'cats', 'and', 'dogs']
for x in a:
      print( x,)

print()
#
# range( 10) runs from 0 to 9
#
for i in range( len( a)):
    print( i, a[i])

In the following example it is tested whether the loop exhausted.

#!/usr/local/bin/python

#
# range( 2, 100) runs from 2 to 99
#
for n in range(2, 100):
    for x in range(2, n):
        if n % x == 0:
            print( n, 'equals', x, '*', n/x)
            break
    else:
        # loop fell through without finding a factor
        print( n, 'is a prime number')

The following loops run over list elements:

knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k, v in knights.iteritems():
    print( k, v)
#
# -> gallahad the pure
# -> robin the brave
# 
for i, v in enumerate(['tic', 'tac', 'toe']):
    print( i, v)
#
# -> 0 tic
# -> 1 tac
# -> 2 toe

# zip allows to loop over two sequences at the same time

questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue']
for q, a in zip(questions, answers):
    print( 'What is your %s?  It is %s.' % (q, a))
#
# -> What is your name?  It is lancelot.
# -> What is your quest?  It is the holy grail.
# -> What is your favorite color?  It is blue.
#

for element in [1, 2, 3]:
    print( element)
for element in (1, 2, 3):
    print( element)
for key in {'one':1, 'two':2}:
    print( key)
for char in "123":
    print( char)
for line in open("myfile.txt"):
    print( line)

Some while loops:

#
# while
#
while 1:
    print( "running forever ")

while a > b:
    print( "a > b")
    if a == 10:
      break
else:
    print( "we didn't hit a <break>")



Subsections