
##x = 0.5
##epsilon = 0.01
##low = 0.0
##high = x
##ans = (high + low)/2.0
##while abs(ans**2 - x) >= epsilon and ans <= x:
##    print 'ans =', ans, 'low =', low, 'high =', high
##    if ans**2 < x:
##        low = ans
##    else:
##        high = ans
##    ans = (high + low)/2.0
##print ans, 'is close to square root of', x

##def withinEpsilon(x, y, epsilon):
##    """x,y,epsilon ints or floats.  epsilon > 0.0
##       returns True if x is within epsilon of y"""
##    return abs(x - y) <= epsilon

##print withinEpsilon(2,3,1)
##val = withinEpsilon(2,3,0.5)
##print val

##def f(x):
##   x = x + 1
##   print 'x =', x
##   return x
##
##x = 3
##z = f(x)
##print 'z =', z
##print 'x =', x

##def f1(x):
##   def g():
##       x = 'abc'
##   x = x + 1
##   print 'x =', x
##   g()
##   assert False
##   return x

##x = 3
##z = f1(x)

##def isEven(i):
##    """assumes i a positive int
##       returns True if i is even, otherwise False"""
##    return i%2 == 0

##def findRoot(pwr, val, epsilon):
##    """assumes pwr an int; val, epsilon floats
##       pwr and epsilon > 0
##       if it exists,
##          returns a value within epsilon of val**pwr
##          otherwise returns None"""
##    assert type(pwr) == int and type(val) == float\
##           and type(epsilon) == float
##    assert pwr > 0 and epsilon > 0
##    if isEven(pwr) and val < 0:
##          return None
##    low = -abs(val)
##    high = max(abs(val), 1.0)
##    ans = (high + low)/2.0
##    while not withinEpsilon(ans**pwr, val, epsilon):
##        #print 'ans =', ans, 'low =', low, 'high =', high
##        if ans**pwr < val:
##           low = ans
##        else:
##           high = ans
##        ans = (high + low)/2.0
##    return ans

##def testFindRoot():
##    """x float, epsilon float, pwr positive int"""
##    for x in (-1.0, 1.0, 3456.0):
##        for pwr in (1, 2, 3):
##            ans = findRoot(pwr, x, 0.001)
##            if ans == None:
##                print 'The answer is imaginary'
##            else:
##                print ans, 'to the power', pwr,\
##                'is close to', x 

#testFindRoot()

##sumDigits = 0
##for c in str(1952):
##    sumDigits += int(c)
##print sumDigits

##x = 100
##divisors = ()
##for i in range(1, x):
##    if x%i == 0:
##        divisors = divisors + (i,)
##
##print divisors
##print divisors[0] + divisors[1]
##print divisors[2:4]


add lec04.py 01.01.04 readme