#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목2023-1학기 기말고사 질문.2024-06-06 12:54
작성자

안녕하세요. 2023-1학기 기말고사 관련 질문드립니다.


아래 코드는 제가 작성한 Answer 코드인데, #4, #5, #8,9, #10, #11 부분이 계속 Fail처리가 되고 있는 상황입니다.

로컬에서 돌리는 코드로는 차이가 없는데요. 아래 코드에 대해 수정사항을 받을 수 있을지 조심스럽게 여쭤봅니다.



감사합니다.


class Time:
# 1
def __init__(self, h, m, s):
if (h >= 0 and m >= 0 and s >= 0) and (h < 24 and m < 60 and s < 60):
self.h = h
self.m = m
self.s = s
else:
self.h = 0
self.m = 0
self.s = 0

# 2
def getTimeTuple(self):
return self.h, self.m, self.s
# 3
def getTimeString(self):
return f"{self.h:0>2}:{self.m:0>2}:{self.s:0>2}"

class Time_24_View(Time):
# 4
def getViewString(self):
return f"{self.h:0>2}:{self.m:0>2}:{self.h:0>2}"
# 5
def __str__(self):
return self.getViewString()
class Time_12_View(Time):
# 6
def getViewString(self):
if self.h >= 12:
type = 'PM'
else:
type = 'AM'
return f"{self.h:0>2}:{self.m:0>2}:{self.s:0>2} {type}"
# 7
def __str__(self):
return self.getViewString()


class Clock:
# 8
def __init__(self, Time):
if type(Time) == Time_12_View or type(Time) == Time_24_View:
self.Time = Time
else:
# 이 부분이 좀 헷갈림
self.Time = Time_24_View(0, 0, 0)

self.alarm_list = []

# 9
def getClockTime(self):
return self.Time.getViewString()
# 10
def changeClockTimeMode(self):
if type(self.Time) == Time_12_View:
h, m, s = self.Time.getTimeTuple()
self.Time = Time_24_View(h, m, s)
else:
h, m, s = self.Time.getTimeTuple()
self.Time = Time_12_View(h, m, s)
return self.getClockTime()
# 11
def setClockTime(self, time_word):
if len(time_word) > 8:
h = int(time_word[0:2])
m = int(time_word[3:5])
s = int(time_word[6:9])
self.Time = Time_12_View(h, m, s)
else:
h = int(time_word[0:2])
m = int(time_word[3:5])
s = int(time_word[6:9])
self.Time = Time_24_View(h, m, s)
return self.getClockTime()
# 12
def addAlarm(self, Time):
if type(Time) == Time_12_View or type(Time) == Time_24_View:
self.alarm_list.append(Time)
return len(self.alarm_list)
# 13
def getAlarmRemainsInSecondList(self):
alarm_lists = []
h, m, s = self.Time.getTimeTuple()
h = h * 60 * 60
m = m * 60
# 현재 시간
sum_time = h + m + s
for alarm in self.alarm_list:
alarm_h, alamr_m, alamr_s = alarm.getTimeTuple()
alarm_h = alarm_h * 60 * 60
alamr_m = alamr_m * 60
# 알람 시간
sum_alarm_time = alarm_h + alamr_m + alamr_s
if sum_time > sum_alarm_time:
divided_time = 24 * 60 * 60 + sum_alarm_time - sum_time
alarm_lists.append(divided_time)
else:
divided_time = sum_alarm_time - sum_time
alarm_lists.append(divided_time)

return alarm_lists
 
댓글