BIG_PY
home
Introduce
home

2-3 문법 정리

수업 자료

BIG_PY-LEVEL_2-SESSION-10.pdf
3937.5KB

즐거운(?) 과제

1.
클래스 정의 초급
“비어있는” bigpy 라는 클래스를 정의하시오.
정답
정답을 설명해주세요.
Python
복사
2.
클래스 상속 초급
다음은 Calculator 클래스이다.
class Calculator: def __init__(self): self.value = 0 def add(self,val): self.value += val
Python
복사
위 클래스를 상속하는 UpgradeCalculator를 만들고 값을 뺄 수 있는 minus 메서드를 추가해보자. 즉 다음과 같이 작동하는 클래스를 만들어야 한다.
cal = UpgradeCalculator() cal.add(10) cal.minus(7) print(cal.value) #10에서 7을 뺀 3을 출력
Python
복사
정답
정답을 설명해주세요.
Python
복사
3.
클래스 상속초급
객체변수 value가 100 이상의 값은 가질 수 없도록 제한하는 MaxLimitCalculator 클래스를 만들어 보자. 즉 다음과 같이 동작해야 한다.
cal = MaxLimitCalculator() cal.add(50) # 50 더하기 cal.add(60) # 60 더하기 print(cal.value) # 100 출력
Python
복사
단 반드시 다음과 같은 Calculator 클래스를 상속해서 만들어야 한다.
class Calculator: def __init__(self): self.value = 0 def add(self, val): self.value += val
Python
복사
정답
정답을 설명해주세요.
Python
복사
4.
클래스 생성자초급
다음과 같이 출력될 수 있도록 클래스에 알맞은 생성자를 추가하시오. >>> me = Human(”철수”, 25, “남자”) >>> print(me.name) 철수
정답
정답을 설명해주세요.
Python
복사
5.
클래스 메서드중급
위 4번 문제의 Human 클래스에서 이름, 나이, 성별을 “출력”하는 who() 메서드를 추가하시오. >>> me = Human(”김영희”, 25, “여자”) >>> me.who() 이름 : 김영희, 나이 : 25, 성별 : 여자
정답
정답을 설명해주세요.
Python
복사
6.
클래스 메서드중급
반지름 정보를 받아서, 원의 면적을 계산하는 메서드를 갖는 Circle 클래스를 정의하고, 생성한 객체의 원의 면적을 출력하는 프로그램을 작성하시오. >>> 원의 면적 : 12.56
정답
정답을 설명해주세요.
Python
복사
7.
클래스 메서드와 상속중급
Shape를 부모 클래스로 Square 자식 클래스를 정의하는 코드를 작성하시오. Square 클래스는 length 필드를 가지며, 0을 반환하는 Shape 클래스의 area 메서드를 length * length 값을 반환하는 메서드로 오버라이딩하시오.
정답
정답을 설명해주세요.
Python
복사
8.
에러의 원인중급
아래 코드의 에러 원인을 추측해보고, 에러가 발생하지 않도록 코드를 수정해 보시오.
class Bigpy : def print() : print("Good Job") hello = Bigpy() hello.print()
Python
복사
정답
정답을 설명해주세요.
Python
복사
9.
클래스 메서드중급
주사위 클래스 Dice를 설계하는데 메소드에는 roll()을 구현하여 주사위를 던져 나온 숫자를 화면에 출력하는 프로그램을 작성하시오.
단, 난수의 발생은 다음을 이용하라. -face = random.randint(1, 6)
정답
정답을 설명해주세요.
Python
복사
10.
클래스 메서드고급
다음과 같이 동작하는 클래스 Calculator을 작성하시오. >>> cal1 = Calculator([1,2,3,4,5]) >>> cal1.sum() # 합계 15 >>> cal1.avg() # 평균 3.0 >>> cal2 = Caculator([6,7,8,9,10]) >>> cal2.sum() # 합계 40 >>> cal2.avg() # 평균 8.0
정답
정답을 설명해주세요.
Python
복사