--- 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

Reply via email to