반응형
다음과 같은 시나리오에 맞게 구현하시오.
Musician.py
#Musician.py
#음악가: 이름(생성 시 필수), 스킬(생성 시 필수), 매력(생성 시 전달 안 함:0)
#소개하다 기능: 자신의 이름, 스킬, 매력 출력
#연습하다: 스킬이 0.1 증가
#연주하다:매력이 스킬*0.1 증가
Pianist.py
#Pianist.py
#피아니스트: 음악가에서 파생
#레벨을 생성 시 전달받는다.
#독주회를 하다 - 레벨이 (스킬+매력)*0.1 증가
main.py
import 구문을 적절하게 추가하시오.
mus = Pianist("송정수",1,1)#피아니스트(이름,스킬,레벨)
mus.Introduce()
for i in range(0,10):
for j in range(0,100):
mus.Ex()#연습하다
mus.Introduce()#소개하다
mus.Play()#연주하다
mus.Introduce()#소개하다
mus.SoloPlay()#독주회를 하다
mus.Introduce()#소개하다
구현 예
Musician.py
#Musician.py
#음악가: 이름(생성 시 필수), 스킬(생성 시 필수), 매력(생성 시 전달 안 함:0)
#소개하다 기능: 자신의 이름, 스킬, 매력 출력
#연습하다: 스킬이 0.1 증가
#연주하다:매력이 스킬*0.1 증가
class Musician:
def __init__(self,name,skill):
self.name = name
self.skill = skill
self.charm = 0
def Introduce(self):
print("이름:{0} 스킬:{1} 매력:{2}".format(self.name,self.skill,self.charm))
def Ex(self):
self.skill += 0.1
def Play(self):
self.charm += (self.skill*0.1)
Pianist.py
#Pianist.py
#피아니스트: 음악가에서 파생
#레벨을 생성 시 전달받는다.
#독주회를 하다 - 레벨이 (스킬+매력)*0.1 증가
from Musician import Musician
class Pianist(Musician):
def __init__(self,name,skill,level):
Musician.__init__(self,name,skill)
self.level = level
def SoloPlay(self):
self.level += ((self.skill+self.charm)*0.1)
Main.py
from Pianist import Pianist
mus = Pianist("송정수",1,1)#피아니스트(이름,스킬,레벨)
mus.Introduce()
for i in range(0,10):
for j in range(0,100):
mus.Ex()#연습하다
mus.Introduce()#소개하다
mus.Play()#연주하다
mus.Introduce()#소개하다
mus.SoloPlay()#독주회를 하다
mus.Introduce()#소개하다
print("level:",mus.level)
반응형
'언어 자료구조 알고리즘 > 프로그래밍 실습' 카테고리의 다른 글
[python] 쇼핑몰 구현 - MSSQL이용한 콘솔 응용 (0) | 2020.11.04 |
---|---|
[python] OOP 실습 - 커뮤니트 시뮬레이션 만들기 (0) | 2020.10.30 |
[python] 상속 실습 - 커뮤니티(게시글, 비밀게시글) (0) | 2020.10.30 |
[python] 상속 실습 - 상품과 할인 상품 (0) | 2020.10.30 |
[python] 상속 개요 - 책과 프로그래밍 책 (0) | 2020.10.30 |
[python] 캡슐화 실습 - 음악가 정의하기 (0) | 2020.10.29 |
[python] 캡슐화 실습 - 직사각형 클래스 정의하기 (0) | 2020.10.29 |
[python] 캡슐화 실습 - 생성자(초기화) 정의하기 (0) | 2020.10.29 |
[python] 캡슐화 실습 - 학생 유닛 키우기 (0) | 2020.10.29 |
[python] 도서 관리 프로그램 - 클래스 및 파일 입출력 포함 (0) | 2020.10.28 |