--- Alan Gauld <[EMAIL PROTECTED]> wrote: > Hi, > > > The goal is to write a function printTime that > takes a > > Time object as an argument and prints it in the > form > > hours:minutes:seconds. > > > > So, I wrote the script below: > > > > class Time: > > pass > > > > hour = int( raw_input('Enter the hour: ') ) > > min = int( raw_input('Enter the minute: ') ) > > sec = int( raw_input('Enter the sec: ') ) > > > > time = Time() > > time.hours = hour > > time.minutes = min > > time.seconds = sec > > Personally I prefer to put the initialisation > intomnan __init__() > method, but otherwise it looks ok to me. Also I'd > probably > not use a class here but a simple tuple or similar, > but your > exercise seems to want an object and implies a class > should be used. > > > def printTime(time): > > print 'The time is %dh:%dmin:%dsec' % (hour, min, > > sec) > > > > printTime(time) > > HTH, > > Alan G > Author of the learn to program web tutor > http://www.freenetpages.co.uk/hp/alan.gauld > >
Hi Alan, Thanks for your comments. Please, see below a new version of that exercise. What do you think? Thanks, Hoffmann ps: the new version: hour = int( raw_input('Enter the hour: ') ) min = int( raw_input('Enter the minute: ') ) sec = int( raw_input('Enter the sec: ') ) class Time: def __init__(self, hours = 0, minutes = 0, seconds = 0): self.hours = hours self.minutes = minutes self.seconds = seconds def printTime(self): # By convention, the first parameter of a method is called self. '''printTime: Prints the time.''' print str(self.hours) + ":" + str(self.minutes) + ":" + str(self.seconds) def convertToSeconds(t): ''' convertToSeconds: Converts a Time object into an integer.''' minutes = t.hours * 60 + t.minutes seconds = t.minutes * 60 + t.seconds return seconds def makeTime(seconds): ''' makeTime: Converts from an integer to a Time object.''' time = Time() time.hours = seconds/3600 seconds = seconds - time.hours * 3600 time.minutes = seconds/60 seconds = seconds - time.minutes * 60 time.seconds = seconds return time def addTime(t1, t2): ''' addTime function: Calculates the sum of two times.''' seconds = convertToSeconds(t1) + convertToSeconds(t2) return makeTime(seconds) currentTime = Time() currentTime.hours = hour currentTime.minutes = min currentTime.seconds = sec currentTime.printTime() __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor