상세 컨텐츠

본문 제목

[Python 만들면서 배우기05] 만들면서 배우는 Python 학생 출력하기

Python

by donggyu1998 2021. 7. 18. 20:42

본문

반응형

💡 글 작성자는 vscode를 활용하여 Python을 작성하고있습니다.

 

💡 [실행화면]

💡 코드 확인

코드 복사 주소 : https://pastebin.com/zHr7qYDW

 

현재 이 글은 한 번에 변수를 지정 복습, setter와 getter 복습, 코드를 줄여서 깔끔하게 사용하는 방법에 대한 글입니다.

이 내용을 읽기전에 https://donggyu.tistory.com/55 를 먼저 읽어주세요.

class Item: # 과목명, 점수
    def __init__(self):
        self._name = None
        self._score = 0

    def setName(self, name):
        self._name = name
    def getName(self):
        return self._name

    def setscore(self, score):
        self._score = score
    def getscore(self):
        return self._score

class Student: # 학생이름, 과목
    def __init__(self):
        self._name = None
        self._items = [] # 빈 아이템 리스트 만듬

    def getName(self):
        return self._name
    def setName(self, name):
        self._name = name

    def getItems(self):
        return self._items
    def appendItem(self, item):
        self._items.append(item)

class School:
    def __init__(self):
        self._name = None
        self._items = []

    def getMidName(self):
        return self._name
    def setMidName(self, name):
        self._name = name

    def getItems(self):
        return self._items
    def appendItem(self, item):
        self._items.append(item)

def main():

    #학교 생성 
    mid = School()
    mid.setMidName("대학교")

    # 동규, 동순 생성
    donggyu = Student()
    mansu = Student()

    donggyu.setName("동규")
    mansu.setName("동순")
    
    # 국어 생성
    kor = Item() 
    kor.setName("국어") 
    kor.setscore(100)

    kor_0 = Item()
    kor_0.setName("국어")
    kor_0.setscore(90)

    # 수학 생성
    math = Item()
    math.setName("수학")
    math.setscore(80)

    math_0 = Item()
    math_0.setName("수학")
    math_0.setscore(70)

    # 영어 생성
    eng = Item()
    eng.setName("영어")
    eng.setscore(60)

    eng_0 = Item()
    eng_0.setName("영어")
    eng_0.setscore(50)

    donggyu.appendItem(kor)
    donggyu.appendItem(math)
    donggyu.appendItem(eng)

    mid.appendItem(donggyu)

    # 국어, 수학, 영어   
    mansu.appendItem(kor_0)
    mansu.appendItem(math_0)
    mansu.appendItem(eng_0)

    mid.appendItem(mansu)

    #print("====================================================================")
    #print(mid.getMidName())
    #print("학생1 | ", donggyu.getName())
    #for item in donggyu.getItems():
    #    print(item.getName(), item.getscore(), end = ' ')

    #print('\n')
    #print("학생2 | ", mansu.getName())
    #for item in mansu.getItems():
    #    print(item.getName(), item.getscore(), end = ' ')
    #print("\n====================================================================")

    print("====================================================================")
    print(mid.getMidName())
    for student in mid.getItems():
        print("\n학생 | ", student.getName())
        for item in student.getItems():
            print(item.getName(), item.getscore(), end = ' ')
    print("\n====================================================================")
if __name__ == "__main__":
    main()

 

! 이전 코드 !

    #print("====================================================================")
    #print(mid.getMidName())
    #print("학생1 | ", donggyu.getName())
    #for item in donggyu.getItems():
    #    print(item.getName(), item.getscore(), end = ' ')

    #print('\n')
    #print("학생2 | ", mansu.getName())
    #for item in mansu.getItems():
    #    print(item.getName(), item.getscore(), end = ' ')
 	#print("\n====================================================================")

! 코드 줄여서 사용하는 경우 !

    print("====================================================================")
    print(mid.getMidName())
    for student in mid.getItems():
        print("\n학생 | ", student.getName())
        for item in student.getItems():
            print(item.getName(), item.getscore(), end = ' ')
    print("\n====================================================================")

 

반응형

관련글 더보기