Controlling the flow inside the loop

Sometimes it is necessary to jump out of the loop, or to go directly to the next loop iteration. These two operations are performed by the break and continue commands.  The break keyword, as the name indicates, breaks the loop. Two situations can occur where the loop breaks:

  • The loop is completely executed.
  • The loop is left before it was completely executed (break).

For the first case, special actions can be defined in an else block, which is executed if the whole list is traversed. This is useful in general if the purpose of the for loop is to find something and stop. Examples might be searching for one element satisfying a certain property inside a list. If such an element is not found, the else block is executed.

Here is a common usage in scientific computing. Quite often, we use an iterating algorithm that is not guaranteed to succeed. In that case, it is preferable to use a (big) finite loop so that the program does not get caught in an infinite loop. The for/else construct allows such an implementation:

maxIteration = 10000
for iteration in range(maxIteration):
    residual = compute() # some computation
    if residual < tolerance:
        break
else: # only executed if the for loop is not broken
    raise Exception("The algorithm did not converge")
print("The algorithm converged in {} steps".format(iteration+1))
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.85.221