스터디/파이썬 스터디 과제

[4팀/김윤] 8차시 파이썬 과제 - 객체지향

알 수 없는 사용자 2023. 5. 19. 22:18

#1 다음 코드의 실행 결과를 쓰시오.

class Company:
    def __init__(self):

        self.work = True
        self.name = "Jane"
        self.gender = "woman"
    def retire(self):
        self.work = False
    
class Employee(Company):
    def __init__(self, name, gender):
        super().__init__()
        self.name = name
        self.gender = gender

    def introduce(self):
        if self.work == True:
            print("I got a  job at a company")
            print("My name is", self.name)
            print("I am a", self.gender)
        if self.work == False:
            print("I left the company")

em = Employee("james", "man")
em.retire()
em.introduce()
Employee("james", "man").introduce()

-> 답 : 

I left the company

I got a job at a company
My name is james

I am a man

#1 실행결과

 

#2 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

class SoccerPlayer(object):
    def __init__(self, name, position, back_number):
        self.name = name
        self.position = position
        self.back_number = back_number
    def change_back_number(self, back_number):
        self.back_number =back_number

jinhyun = SoccerPlayer("jinhyun", "MF", 10)
print("현재 선수의 등번호는:", jinhyun.back_number)
jinhyun.change_back_number(5)

-> 답:

현재 선수의 등번호는: 10

#2 실행결과

 

#3 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

class Marvel(object):
    def __init__(self, name, characteristic):
        self.name = name
        self.characteristic = characteristic
    def __str__(self):
        return f"My name is {self.name} and my weapon is {self.characteristic}"
    
class Villain(Marvel):
    pass
first_villain = Villain("Thanos", "infinity gauntlet")
print(first_villain)

-> 답:

My name is Thanos and my weapon is infinity gauntlet

#3 실행결과

 

#4 다음 코드의 실행 결과를 쓰시오.

class TV(object):
    def __init__(self, size, year, company):
        self.size = size
        self.year = year
        self.company = company
    def describe(self):
        print(self.company + "에서 만든" + self.year + "년형" + self.size + "인치" + "TV")

class Laptop(TV):
    def describe(self):
        print(self.company + "에서 만든" + self.year + "년형" + self.size + "인치" + "노트북")

LG_TV = TV("32", "2002", "LG")
LG_TV.describe()

samsung_microwave = Laptop("15", "2023", "Samsung")
samsung_microwave.describe()

-> 답:

LG에서 만든2002년형32인치TV

Samsung에서 만든2023년형15인치노트북

#4 실행결과

 

#5 4번과 같은 코드의 설명은 아래와 같다. 빈 칸에 알맞은 단어를 넣으시오.

위 코드에서 Laptop 클래스는 TV클래스를 (가)하였다. 또한, 같은 이름의 내부 로직을 다르게 작성했으므로 (나)의 사례로도 볼 수 있다. 

-> 답 : (가) - 상속, (나) - 다형성

 

#6 다음 코드의 실행 결과를 쓰시오.

class Person:
    def __init__(self, name, age, position):
        self.Name = name
        self.Age = age
        self.Position = position
    def show_info(self):
        print(f"이름 : {self.Name}")
        print(f"나이 : {self.Age}")
        print(f"직위 : {self.Position}")
        print(f"저는 한빛대학교 {self.Position} {self.Name}입니다. 나이는 {self.Age}입니다.")

class Researcher(Person):
    def __init__(self, name, age, position, degree):
        Person.__init__(self, name, age, position)
        self.Degree = degree
    def show_info(self):
        Person.show_info(self)
        print(f"저는 {self.Degree}입니다.")

if __name__=="__main__":
    researcher_john = Researcher("John", "22", "연구원", "학사")
    researcher_tedd = Researcher("Tedd", "40", "소장", "박사")
    researcher_john.show_info()
    print("=" * 50)
    researcher_tedd.show_info()

-> 답:

이름 : John

나이 : 22

직위 : 연구원

저는 한빛대학교 연구원 John입니다. 나이는 22입니다.

저는 학사입니다.

==================================================

이름 : Tedd

나이 : 40

직위 : 소장

저는 한빛대학교 소장 Tedd입니다. 나이는 40입니다.

저는 박사입니다.

#6 실행결과

 

#7 다음 코드의 실행 결과를 쓰시오.

class Terran(object):
    def __init__(self, mineral):
        self.scv = 4
        self.marine = 0
        self.medic = 0
        self.mineral = mineral
    def command(self, SCV=False):
        self.mineral += 8*self.scv
        if SCV:
            self.scv += 1
            self.mineral -= 10
    def barrack(self, Marine = False, Medic=False):
        self.mineral +=8*self.scv
        if Marine:
            self.marine += 1
            self.mineral -= 15
        if Medic:
            self.medic += 1
            self.mineral -= 15
    def check_source(self):
        print("Mineral: "+ str(self.mineral))

User = Terran(50)
User.command(True)
User.barrack(True, True)
User.check_source()

-> 답:

Mineral: 82

#7 실행결과

 

#8 다음 코드의 실행 결과를 쓰시오.

class IceCream(object):
    def __init__(self, flavor):
        self.flavor = flavor
    def change_flavor(self, new_flavor):
        print("아이스크림을 %s에서 %s로 변경해주세요."% (self.flavor, new_flavor))
        self.flavor = new_flavor
        print("아이스크림 맛을 %s로 변경해드렸어요."%self.flavor)

ice_cream = IceCream("레인보우 샤베트")
ice_cream.change_flavor("바람과 함께 사라지다")

-> 답:

아이스크림을 레인보우 샤베트에서 바람과 함께 사라지다로 변경해주세요.

아이스크림 맛을 바람과 함께 사라지다로 변경해드렸어요.

#8 실행결과