Nbspcomplete the class time which stores and manipulates


Complete the class Time, which stores and manipulates times on a 24 hour clock. As specified below, write the required methods, including those needed for overloading operators. Exceptions messages should include the class and method names, and identify the error (including the value of all relevant arguments). Hint see the type_as_str function in the goody.py module.

  1. The class is initialized with three int values (the hour first, the minute second, the second third; all with default values of 0). If any parameter is not an int, or not in the correct range (the hour must be between 0 and 23 inclusive, the minute and second must be between 0 and 59 inclusive) raise an AssertionError with an appropriate string describing the problem/values. When initialized, the Time class should create exactly three self variables named hour, minute, and second (with these exact names and no others self variables).
  2. Write the __getitem__ method to allow Time class objects to be indexed by either (a) an int with value 1 or 2 or 3, or (b) any length tuple containing any combinations of just these three values: e.g., (1,3). If the index is not one of these types or values, raise an IndexError exception with an appropriate string describing the problem/values. If the argument is 1, returns the hour; if the argument is 2, return the minute, and if the argument is 3, return the second. If the argument is a tuple, return a tuple with hour or minute or second substituted for each value in the tuple. So if t = Time(5,15,20) then t[1] returns 5 and t[2,3] returns (15,20). Note that calling t[1] will pass 1 as its argument; calling t[1,2] will pass the tuple (1,2) as its argument.
  3. Write methods that return (a) the standard repr function of a Time, and (b) a str function of a Time: str for a Time shows the time in the standard 12 hour clock format: str(Time(13,10,5)) returns '1:10:05pm'; str(Time(5,6,3)) returns '5:06:03am'; str(Time(0,0,0)) returns '12:00:00am'. It is critical to write the str method correctly, because I used it in the batch self-check file for testing the correctness of other methods.
  4. Write a method that interprets midnight as False and any other time as True.
  5. Write a method that interprets the length of a Time as the number of seconds that have elapsed from midnight to the that time. So len(Time(0,0,0)) returns 0 and len(Time(23,59,59)) returns 86,399; there are 86,400 seconds in a day: midnight to midnight.
  6. Overload the == operator to allow comparing two Time objects for equality (if a time object is compared against an object from any other class, it should return False). Note that if you define == correctly, Python willbeabletocompute!=byusing ==.
  7. Overload the < operator to allow comparing two Time objects. The left Time is less-than the right one if it comes earlier in the day than the right one. Also allow the right operand to be an int: in this case, return whether the length (an int, see above) of the Time is less-than the right int. If the right operand is any other type, raise a TypeError exception with an appropriate string describing the problem/values. Note that if you define < correctly, Python will be able to compute Time > Time and int > Time by using <.
  8. Overload the + operator to allow adding a Time object and an int, producing a new Time object as a result (and not mutating the Time object + was called on). If the other operand is not an int, raise a TypeError

exception with an appropriate string describing the problem/values. Both Time + int and int + Time should be allowed and have the same meaning. Hint: write code that adds one second to a Time; then iterate over this code the int number of time.

9. Write the __call__ method to allow an object from this class to be callable with three int arguments: update the hour of the object to be the first argument, and the minute of the object to be the second argument,andthesecondoftheobjecttobethethirdargument.ReturnNone. Ifanyparameterisnotlegal (see how the class is initialized), raise an AssertionError with an appropriate string describing the problem/values.

Solution Preview :

Prepared by a verified Expert
Python Programming: Nbspcomplete the class time which stores and manipulates
Reference No:- TGS01292776

Now Priced at $20 (50% Discount)

Recommended (94%)

Rated (4.6/5)