-
[코드스테이츠 4-4_basic] 데이터 기초반_파이썬 입문(과제: 4-4_basic)[코드스테이츠] 2022. 11. 21. 02:27
1. 과제명
- 코드스테이츠 K-디지털 기초역량훈련 데이터 기초반 4-4(basic)
2. 과제내용
- 4주 4일차 영상강의에서 나온 상속과 오버라이딩 개념을 이용하여 4주 3일차 basic 과제의 코드를 개선해봐요
3. 과제를 통해 배운점
- 상속과 오버라이딩을 사용하여 4주 3일차 basic 과제의 코드를 개선했어요.
- 작성한 코드를 GitHub에 push 했어요.
class Dog: def __init__(self, breed:str, name:str, age:int): self.breed = breed self.name = name self.age = age self.update_weight() self.days = 0 self.eg = self.newday() self.full = False breed2color = { "Poodle" : "black", "Maltese" : "white" } self.color = breed2color[breed] def amounts(self): amount = round(self.weight * 1000 * 0.01, 2) print(f"{self.name}은(는) 하루에 {amount}g의 사료를 먹습니다.") return amount def newday(self): self.days += 1 self.eg = 0 return self.eg def withdays(self): print(f"{self.name}와(과) 함께한 날은 {self.days}일 입니다.") def eat(self, g): amount = self.amounts() self.eg += g if self.eg < amount: print(f"{self.name}은(는) 오늘 {self.eg}g의 사료를 먹었습니다. 더 먹을 수 있어요!") self.full = False else: print(f"{self.name}은(는) 오늘 {self.eg}g의 사료를 먹었습니다. 이제 배불러요!") self.full = True return self.eg, self.full def isfull(self): if self.full: print(f"배불러요!") else: print(f"배부르지 않아요!") def get_color(self): return self.color def get_n_year_old(self, n:int): self.age += n self.update_weight() return self.age, self.weight def update_weight(self): if self.age < 4: self.weight = self.age * 1.2 else: self.weight = 3 class Puppy: def __init__(self, breed:str, name:str): self.name = name self.breed = breed self.month = 0 self.update_weight() self.days = 0 self.eg = self.newday() self.full = False breed2color = { "Poodle": "black", "Maltese": "white" } self.color = breed2color[breed] def update_weight(self): if self.month < 48: self.weight = (self.month + 1) * 0.1 else: self.weight = 3 def get_n_month_old(self, n:int): self.month += n self.update_weight() return self.month, self.weight def get_n_year_old(self): pass def amounts(self): amount = round(self.weight * 1000 * 0.27, 2) print(f"{self.name}은(는) 하루에 {amount}ml의 분유를 먹습니다.") return amount def eat(self, g): amount = self.amounts() self.eg += g if self.eg < amount: print(f"{self.name}은(는) 오늘 {self.eg}ml의 분유를 먹었습니다. 더 먹을 수 있어요!") self.full = False else: print(f"{self.name}은(는) 오늘 {self.eg}ml의 분유를 먹었습니다. 이제 배불러요!") self.full = True return self.eg, self.full def isfull(self): if self.full: print(f"배불러요!") else: print(f"배부르지 않아요!") def newday(self): self.days += 1 self.eg = 0 if self.days % 30 == 0: self.get_n_month_old(1) return self.eg def withdays(self): print(f"{self.name}와(과) 함께한 날은 {self.days}일 입니다.")
# 코드 사용 예시 popo = Dog("Poodle", "popo", 3) pipi = Puppy(breed="Poodle", name="pipi") pipi.amounts() pipi은(는) 하루에 27.0ml의 분유를 먹습니다. Out[6]: 27.0 for i in range(30): pipi.newday() pipi.month Out[10]: 1 pipi.amounts() pipi은(는) 하루에 54.0ml의 분유를 먹습니다. Out[11]: 54.0 pipi.eat(54) pipi은(는) 하루에 54.0ml의 분유를 먹습니다. pipi은(는) 오늘 54ml의 분유를 먹었습니다. 이제 배불러요! Out[12]: (54, True) pipi.isfull() 배불러요! pipi.withdays() pipi와(과) 함께한 날은 31일 입니다.
Github의 Dog_eat branch에 Dog2.py로 push
https://github.com/EYZ27/mini_proj/tree/Dog_eat
GitHub - EYZ27/mini_proj
Contribute to EYZ27/mini_proj development by creating an account on GitHub.
github.com
'[코드스테이츠]' 카테고리의 다른 글
[코드스테이츠 4-3_advanced] 데이터 기초반_파이썬 입문(과제: 4-3_advanced) (0) 2022.11.21 [코드스테이츠 4-3_basic] 데이터 기초반_파이썬 입문(과제: 4-3_basic) (0) 2022.11.21 [코드스테이츠 4-2_advanced] 데이터 기초반_파이썬 입문(과제: 4-2_advanced) (0) 2022.11.17 [코드스테이츠 4-2_basic] 데이터 기초반_파이썬 입문(과제: 4-2_basic) (0) 2022.11.17 [코드스테이츠 4-1_advanced] 데이터 기초반_파이썬 입문(과제: 4-1_advanced) (0) 2022.11.17