# loops.py # Walker M. White (wmw2) # October 30, 2012 """Module to illustrate difference between for-loops and while-loops""" def increment_for(seq): """Increment each element of seq Precondition: seq is a list of integers""" for k in range(len(seq)): seq[k] = seq[k]+1 def increment_while(seq): """Increment each element of seq Precondition: seq is a list of integers""" k = 0 while k < len(seq): seq[k] = seq[k]+1 k = k + 1 def e(err): """Compute the constant e to with the given margin of error. Use the Taylor Expansion e = 1 + 1 + 1/2 + 1/6 + ... + 1/n! + ... We can approximate e ~ 1 + 1 + 1/2 + 1/6 + ... + 1/n! (e.g. stopping the infinite sum at some value of n). The error when we do this is < 1/n!. So we loop until we reach a value of n with 1/n! <= error. Precondition: err > 0 is a number.""" value = 2 # The value of e start with n = 1 factorial = 1 # Tracks factorial without recursion n = 2 # The next value of n while 1.0/factorial > err: factorial = factorial*n # Compute 1/n! value = value + 1.0/factorial # Add 1/n! n = n + 1 return value