0
import datetime
class Time:
def __init__(self, init_hr = 10, init_min = 30, init_ampm = "AM"):
"""
initializes the hour, the minute, and a string indicating
whether it's an AM or PM time
"""
if init_hr < 1 or init_hr > 12:
raise Exception("Error: Invalid hour for Time object")
if init_min < 0 or init_min > 59:
raise Exception("Error: Invalid minute for Time object")
init_ampm = init_ampm.upper()
if init_ampm != "AM" and init_ampm != "PM":
raise Exception("Error: Invalid am/pm flag for Time object")
self.hr = init_hr
self.min = init_min
self.ampm = init_ampm
def __add__(self, mins):
"""
Returns the sum of a Time instance and a non-negative integer mins
"""
if mins // 60 and self.hr < 12:
div = mins // 60
add = self.hr + div
mod = mins % 60
add2 = self.min + mod
string = Time(add, add2)
return string
elif mins // 60 and self.hr == 12:
div = mins // 60
addsub = self.hr + div - 12
mod = mins % 60
add2 = self.min + mod
string = Time(addsub, add2)
return string
Когда я проверить функцию добавить это дает мне эту ошибку:возникли проблемы с оным
Traceback (most recent call last):
File "C:\Python34\problem2.py", line 313, in <module>
print("645 minutes after ", t3, " the time is", t3 + 645)
File "C:\Python34\problem2.py", line 100, in __add__
string = Time(add, add2)
File "C:\Python34\problem2.py", line 18, in __init__
raise Exception("Error: Invalid hour for Time object")
Exception: Error: Invalid hour for Time object
Не знаю, почему это дает мне эту ошибку, но иногда после полуночи всегда происходит эта ошибка. Любые решения?
Это может помочь, если вы распечатали оскорбительное значение для 'init_hr'. –
И именно то, что вы используете, чтобы «проверить» его. – BlivetWidget
'add = self.hr + div', вероятно, дает значение больше, чем 12 –