묶음 = 묶음생성기([1,2,3,4,5,6,7,8],n_groups=2)15wk-1: 퀴즈10
Caution
- 전북대 학생들을 시험당일 학생증을 지참할 것. (출석체크 및 본인확인) 학생증 외에 신분증 여권등도 가능.
- 부정행위 (카카오톡 채팅을 통한 코드공유, 생성형모델 사용, 대리시험 등) 적발시 F 처리함.
- 퀴즈 중 지각할 경우 지각사실을 기록함. 하지만 별 다른 감점은 하지 않음.
.ipynb파일 형태로 제출된 답안지만 채점하며 그 외의 형식 (.hwp,.py등)은 채점하지 않음. 즉 0점 처리함.
1. – 50점
정확한 구현시에만 점수있음. 이외는 0점
아래와 같은 기능을 하는 클래스 묶음생성기를 설계하라.
# 예시1
[x for x in 묶음][[1, 3, 5, 7], [2, 4, 6, 8]]
#
# 예시2
animlas = ["사자", "호랑이", "코끼리", "닭", "얼룩말", "캥거루", "판다", "나무늘보", "돼지", "양"]
묶음 = 묶음생성기(animlas,n_groups=3)[x for x in 묶음][['사자', '닭', '판다', '양'], ['호랑이', '얼룩말', '나무늘보'], ['코끼리', '캥거루', '돼지']]
#
# 예시3
sounds = ['어흥', '크앙', '뿌우', '꼬끼오', '이히힝', '캥거캥거', '냠냠', 'Zzz', '꾸울', '메에']묶음 = 묶음생성기(list(zip(animlas,sounds)),n_groups=4)[x for x in 묶음][[('사자', '어흥'), ('얼룩말', '이히힝'), ('돼지', '꾸울')],
[('호랑이', '크앙'), ('캥거루', '캥거캥거'), ('양', '메에')],
[('코끼리', '뿌우'), ('판다', '냠냠')],
[('닭', '꼬끼오'), ('나무늘보', 'Zzz')]]
#
(풀이)
class 묶음생성기:
def __init__(self,array,n_groups):
self.array = array
self.n_groups = n_groups
self.i = 0
def __iter__(self):
return self
def __next__(self):
if self.i < self.n_groups:
group = self.array[self.i::self.n_groups]
self.i = self.i + 1
return group
else:
raise(StopIteration) 2. – 50점
정확한 구현시에만 점수있음. 이외에는 0점
아래와 같은 기능을 하는 클래스 애완동물을 설계하라.
# 예시1
하니 = 애완동물(name="하니",sound="멍")
나비 = 애완동물(name="나비",sound="야오옹")동물명 <하니> 와 같이 살기로 결심했습니다.
동물명 <나비> 와 같이 살기로 결심했습니다.
하니()하니가 멍하고 울었습니다.
나비()나비가 야오옹하고 울었습니다.
애완동물.모두울어보세요()하니가 멍하고 울었습니다.
나비가 야오옹하고 울었습니다.
#
# 예시2
꿀이 = 애완동물(name="꿀이",sound="꿀!")
크앙이 = 애완동물(name="크앙이",sound="크앙!") 동물명 <꿀이> 와 같이 살기로 결심했습니다.
동물명 <크앙이> 와 같이 살기로 결심했습니다.
꿀이()꿀이가 꿀!하고 울었습니다.
크앙이()크앙이가 크앙!하고 울었습니다.
애완동물.모두모여보세요()하니,나비,꿀이,크앙이가 모두 모였습니다.
애완동물.모두울어보세요()하니가 멍하고 울었습니다.
나비가 야오옹하고 울었습니다.
꿀이가 꿀!하고 울었습니다.
크앙이가 크앙!하고 울었습니다.
#
# 예시3
복순이 = 애완동물(name="복순이",sound="멍멍") 동물명 <복순이> 와 같이 살기로 결심했습니다.
복순이()복순이가 멍멍하고 울었습니다.
애완동물.모두모여보세요()하니,나비,꿀이,크앙이,복순이가 모두 모였습니다.
애완동물.모두울어보세요()하니가 멍하고 울었습니다.
나비가 야오옹하고 울었습니다.
꿀이가 꿀!하고 울었습니다.
크앙이가 크앙!하고 울었습니다.
복순이가 멍멍하고 울었습니다.
#
(풀이)
class 애완동물:
petlist = []
def __init__(self,name,sound):
self.name = name
self.sound = sound
print(f"동물명 <{self.name}> 와 같이 살기로 결심했습니다.")
애완동물.petlist.append(self)
def __call__(self):
print(f"{self.name}가 {self.sound}하고 울었습니다.")
@classmethod
def 모두울어보세요(cls):
for pet in cls.petlist:
pet()
@classmethod
def 모두모여보세요(cls):
text = ",".join([pet.name for pet in cls.petlist])
print(f"{text}가 모두 모였습니다.")