Lecture 강의

Undergraduates 학부 Graduates 대학원 Lecture 역학 Lecture 설계 Lecture IT(IoT, AI) Lecture SAP2000 Lecture 아바쿠스 Lecture 파이썬 Lecture 엑셀 VBA Lecture 마이다스 Lecture 이탭스

[Quiz 08] 2.5 클래스

작성자 : kim2kie

(2023-03-05)

조회수 : 1437

[참조]
.관련 동영상
https://youtu.be/MuNOAArae0M

 

Q) 
주어진 코드를 활용하여 다음 출력 결과를 갖는 부동산 프로그램을 작성하라.

.주어진 코드
class House:
    # 매물 초기화 : 위치, 건물 종류, 매물 종류, 가격, 준공년도
    def __init__(self, location, house_type, deal_type, price, completion_year):
        pass

    # 매물 정보 표시
    def show_detail(self):
        pass

.출력 결과
총 3개의 매물이 있습니다.
강남 아파트 매매 10억 2010년
마포 오피스텔 전세 5억 2007년
송파 빌라 월세 500/50 2000년


 
A) 해설
클래스, 인스턴스, 생성자 등 2.5절 클래스 참조


C) 코드: "quiz-08.py"
class House:
    # 매물 초기화 : 
    # 위치(location), 건물 종류(house_type), 매물 종류(deal_type), 가격(price), 준공년도(completion_year)
    def __init__(self, location, house_type, deal_type, price, completion_year):
        self.location = location
        self.house_type = house_type
        self.deal_type = deal_type
        self.price = price
        self.completion_year = completion_year

    # 매물 정보 표시
    def show_detail(self):
        print(self.location, self.house_type, self.deal_type, 
        self.price, self.completion_year)


house1 = House("강남", "아파트", "매매", "10억", "2010년") # 인스턴스 1 생성
house2 = House("마포", "오피스텔", "전세", "5억", "2007년") # 인스턴스 2 생성
house3 = House("송파", "빌라", "월세", "500/50", "2000년") # 인스턴스 3 생성

houses = [] # 객체를 넣을 수 있는 Null 리스트 생성
houses.append(house1) # 리스트에 생성된 인스턴스들을 차례로 추가
houses.append(house2)
houses.append(house3)

print("총 {0}개의 매물이 있습니다.".format(len(houses)))
for house in houses:
    house.show_detail() # 클래스의 출력함수로 리스트에 있는 인스턴스들을 차례로 출력


 

Q-report) 
주어진 코드는 class를 활용하여 평균 학점(average grade)를 산정하는 프로그램이다. 
------
class GradeCalculator:
    def __init__(self, scores):
        self.scores = scores

    def calculate_average(self):
        total = sum(self.scores)
        return total / len(self.scores)

    def calculate_grade(self):
        average = self.calculate_average()
        if average >= 90:
            return "A"
        elif average >= 80:
            return "B"
        elif average >= 70:
            return "C"
        elif average >= 60:
            return "D"
        else:
            return "F"

scores = [85, 92, 78, 90, 89]
calculator = GradeCalculator(scores)

print("Average score:", calculator.calculate_average())
print("Grade:", calculator.calculate_grade())

--------
출력결과

Average score: 86.8
Grade: B

--------

주어진 코드를 수정하여, 다음 scores일 경우, 결과를 평균 학점로 숫자로 출력하라.

scores = [B+, A, C+, A, B+]

--------
출력결과

Average score: 4.15
--------

여기서 
A+ = 4.5
A  = 4.0
B+ = 3.5
B  = 3.0
C+ = 2.5
C  = 2.0
F  = 0.0