python 중앙값 클래스 만들기

조회수 680회
class Median:


    def __init__(self):
        pass

    def get_item(self, item):
        pass

    def clear(self):
        pass

    def show_result(self):
        pass


    for x in [0.5, 6.2, -0.4, 9.6, 0.4]:
       median.get_item(x)

    median.show_result()
    median.clear()

입력받은 값 중 중앙값을 출력하는 클래스를 완성하시오. 입력받은 값이 짝수개이면, 중앙값 2개의 평균을 출력하시오. (단, clear 메소드는 입력받은 내역을 모두 삭제)

제가 작성한 코든데요 이번에 클래스를 배우는거라 영 모르겠더라고요. for 문으로 받아서 append해주고 정렬해서 중앙값 만드는것까진했는데 함수들사이의 연동을 잘 모르겠어서, 알려주시면 감사하겠습니다.

class Median:

    def __init__(self):
        pass

    def get_item(self, item):
        item=[]
        self.item = item
        item.append(item)
        item.sort()

    def clear(self):
        pass

    def show_result(self):

        centerIndex = len(self.item) // 2 
        if len(self.item)% 2 == 1:
            result = self.item[centerIndex ]
        else:
            result = ((self.item[centerIndex - 1] + self.item[centerIndex ]) / 2)
        return result

        print(result)

1 답변

  • 우선 가장 큰 문제만 알려드리겠습니다.

    get_item 에서 빈 리스트인 item 을 만들고, 그것을 self.item 에 assign 해 줍니다. 이렇게 하면, get_item 이 불릴 때마다 self.item 이 초기화 되어버립니다. 2개 이상 아이템을 모아둘 수가 없어요.

    그렇겠죠?

    item 리스트 초기화는 init 에서 처음에 한번 하고, clear 에서 비울 때 다시 하고 하면 됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)