[파이썬 원격 강의 과제]220913 #3 클래스 활용해보기

2022. 9. 21. 11:16스파르타코딩클럽[AI트랙 3기]/파이썬 과제

1)1번 문제(도형 너비 구하기)

>내가짠 코드

lass Area():
    def __init__(self, v1, v2):
        self.v1 = v1
        self.v2 = v2

    def squre(self,v1,v2): #사각형의 넓이 메소드
        result = self.v1 * self.v2
        return result

    def triangle(self,v1,v2): #삼각형의 넓이 메소드
        result = (self.v1 * self.v2) / 2
        return result

    def circle(self,v1,v2) :#원의 넓이 메소드
        result = (self.v1 / 2)**2 * 3.14
        return result

area = Area(10, 20) #인스턴스 생성
print(area.squre())
print(area.triangle())
print(area.circle())

▶각 함수별로 인자를 추가해줬다. init에서 이미 v1,v2를 지정해줘서 이것을 전역변수처럼 쓸 수 있는데 필요도 없는 v1,v2를 함수별로 넣어서 작동 안했음.

>정답 코드

class Area():
    def __init__(self, v1, v2):
        self.v1 = v1
        self.v2 = v2

    def squre(self): #사각형의 넓이 메소드
        result = self.v1 * self.v2
        return result

    def triangle(self): #삼각형의 넓이 메소드
        result = (self.v1 * self.v2) / 2
        return result

    def circle(self) :#원의 넓이 메소드
        result = (self.v1 / 2)**2 * 3.14
        return result

area = Area(10, 20) #인스턴스 생성
print(area.squre())
print(area.triangle())
print(area.circle())

 

2)2번문제(계산기 클래스 활용)>내가짠 코드

class Calc():
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def plus(self):
        result = self.a + self.b
        return result

    def minus(self):
        result = self.a - self.b
        return result

    def multiple(self):
        result = self.a * self.b
        return result

    def divide(self):
        result = self.a / self.b
        return result

calc = Calc()
calc().set_number(20, 10)

print(calc.plus())
print(calc.minus())
print(calc.multiple())
print(calc.divide())

▶밑에 set함수라는 것을 따로 지정해줬다. 그래서 init 안쓰고 set함수를 정의해주고 나머지 처리 

>정답코드

class Calc():
    def set_number(self, a, b):
        self.a = a
        self.b = b

    def plus(self):
        result = self.a + self.b
        return result

    def minus(self):
        result = self.a - self.b
        return result

    def multiple(self):
        result = self.a * self.b
        return result

    def divide(self):
        result = self.a / self.b
        return result

calc = Calc()
calc.set_number(20, 10)

print(calc.plus())
print(calc.minus())
print(calc.multiple())
print(calc.divide())

3)3번문제(프로필 관리기능 만들어보기)

class Profile():
    def __init__(self):
        self.profile = {
            "name": "-",
            "gender": "-",
            "birthday": "-",
            "age": "-",
            "phone": "-",
            "email": "-",
        }

    def set_profile(self, profile):
        self.profile = profile

    def get_name(self):
        return self.profile["name"]  # self.profile 딕셔너리 중 name에 해당하는 value값을 리턴

    def get_gender(self):
        return self.profile["gender"]

    def get_birthday(self):
        return self.profile["birthday"]

    def get_age(self):
        return self.profile["age"]

    def get_phone(self):
        return self.profile["phone"]

    def get_email(self):
        return self.profile["email"]

profile = Profile() # 인스턴스(profile) 생성
profile.set_profile({
    "name": "lee",
    "gender": "man",
    "birthday": "01/01",
    "age": 32,
    "phone": "01012341234",
    "email": "python@sparta.com",
})

print(profile.get_name())
print(profile.get_gender())
print(profile.get_birthday())
print(profile.get_age())
print(profile.get_phone())
print(profile.get_email())