python(4) 클래스 만들기 연습

hyukstory 혁스토리·2020년 8월 25일
0

python

목록 보기
7/35

딕셔너리 리스트 만드는 함수

def make_dict(name,korean,math,english,science):
        return {"name":name,
          "korean":korean,
           "math":math,
           "english":english,
           "science":science
           }

student2 = [make_dict("윤인성",87,98,88,95),
      make_dict("김수인",87,98,88,95),
      make_dict("박선라",87,98,88,95),
      make_dict("이혁수",85,76,95,100),
      make_dict("신나은",82,95,78,64),
      make_dict("김계란",78,85,94,50)]
    
print(student2)

성적 집계표 나타내는 함수

def calc():
    cnt = 0
    for st in student:
        if cnt == 0:
            print("    성적 집계표  ")
            print("=======================")
            print("이름","총점","평균",sep="    ")
            print("=======================")
            cnt = 1
            
        print("{}\t{:5}\t{:5}".format(st["name"],make_sum(st),make_avg(st)))
    print("=======================")

총점 구하는 함수

def make_sum(st):
    return st["korean"]+st["math"]+\
                st["english"] + st["science"]

평균 구하는 함수

def make_avg(st):
    return make_sum(st) / 4
 
calc()

class ?

class -> function(메소드) + 변수(속성)
class -> 객체화 시킬 수 있다. object:
 
a = Cookie() 이렇게 만든 a는 객체이다. 
그리고 a 객체는 Cookie의 인스턴스  

생성자 __init__ - 클래스 내부에서 객체 생성시 처리 작업
메소드 사용시 - 인자 사용시 기본적으로 self 사용
인스턴스의 구분자로 사용

클래스 만들어보기

class scoreTotal :
    def __init__ (self, name, korean, math, english, science):
        self.name = name
        self.korean = korean
        self.math = math
        self.english = english
        self.science = science

    def make_sum(self) :
        return self.korean + self.math + self.english + self.science
        
    def make_avg(self) :
        return self.make_sum() / 4

    def to_print(self) :
        return "{}\t{:5}\t{:5}".format(self.name , self.make_sum(), self.make_avg())




student3 = [scoreTotal("윤인성",87,98,88,95),
            scoreTotal("김수인",87,98,88,95),
            scoreTotal("박선라",87,98,88,95),
            scoreTotal("이혁수",85,76,95,100),
            scoreTotal("신나은",82,95,78,64),
            scoreTotal("김계란",78,85,94,50)]

print(student3)


for st in student3 :
    print(st.to_print())
profile
문돌이의 고군분투 개발 공부

0개의 댓글