sam wrote: > def recursive_halve(value): > > if value < 1: > print value > return value > else: > value = value/2 > print value > if value < 1: > return value > else: > recursive_halve(value)
Missing a return on the last line is likely your immediate problem. You have more subtle problems, though. First, you have needlessly reduplicated value<1 test--the first thing recursive_halve does is to check whether value<1, so there's no need to check whether value<1 before calling it. Second, you have redundant branching logic. Look at your first else statement. It does nothing; the else doesn't affect whether the stuff inside it gets executed or not; it's redundant. It's better style to not to have such redundancy (either by omitting the else, or having a single return point). The following should do exactly what you want. def recursive_halve(value): if value < 1: print value return value value = value/2 print value return recursive_halve(value) Carl Banks -- http://mail.python.org/mailman/listinfo/python-list