On Wed, Sep 22, 2010 at 9:10 AM, Roelof Wobben <rwob...@hotmail.com> wrote: > > > HEllo, > > I have this exercise : > > 3.Rewrite the increment function so that it doesn’t contain any loops. > > The increment function looks like this : > > def increment(time, seconds): > time.seconds = time.seconds + seconds > while time.seconds>= 60: > time.seconds = time.seconds - 60 > time.minutes = time.minutes + 1 > while time.minutes>= 60: > time.minutes = time.minutes - 60 > time.hours = time.hours + 1 > > > So I thought that recursion can do the job. >
That's very clever. But you might argue that recursion is technically still a loop, albeit an implicit one. There is a simpler way to do this, without loops entirely. Hint: repeated subtraction while your number is greater than some constant, what you are doing, is essentially the same as doing one division operation. > > But how can i Check the outcome. > print uitkomst gives the object and print time(uitkomst) gives this error > message : > > Traceback (most recent call last): > File "C:\Users\wobben\workspace\oefeningen\src\test.py", line 34, in <module> > print time(uitkomst) > AttributeError: tijd instance has no __call__ method > You can do "print uitkomst.seconds, uitkomst.minutes, uitkomst.hours". Alternatively, write a suitable __str__ method for your tijd class. Then you can just do "print uitkomst" > Roelof _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor