WeniVooks

검색

견고한 파이썬

연습문제

1번 문제

user_data = [user_1, user_2, user_3]
user_data = [user_1, user_2, user_3]

다음 링크에서 생성한 user 데이터입니다. 이 데이터를 활용하여 User class를 만들어주세요. 인스턴스는 리스트로 관리됩니다. 다만 꼭 변수 이름이 user_1...user_n 일 필요는 없습니다.

JSON Generator
data = [
  {
    "_id": "fd7e9a0f-e77b-436a-B781-119b66033d49",
    "index": "1",
    "name": "나주헌",
    "gender": "여성",
    "age": "43"
  },
  {
    "_id": "8ec6eabb-160a-41e4-A3de-cd33aff0b281",
    "index": "2",
    "name": "엄루다",
    "gender": "남성",
    "age": "22"
  },
  {
    "_id": "bcf804f7-0452-4c31-B9d1-20cc2d38490b",
    "index": "3",
    "name": "형유환",
    "gender": "남성",
    "age": "31"
  }
]
data = [
  {
    "_id": "fd7e9a0f-e77b-436a-B781-119b66033d49",
    "index": "1",
    "name": "나주헌",
    "gender": "여성",
    "age": "43"
  },
  {
    "_id": "8ec6eabb-160a-41e4-A3de-cd33aff0b281",
    "index": "2",
    "name": "엄루다",
    "gender": "남성",
    "age": "22"
  },
  {
    "_id": "bcf804f7-0452-4c31-B9d1-20cc2d38490b",
    "index": "3",
    "name": "형유환",
    "gender": "남성",
    "age": "31"
  }
]

2번 문제

BankAccount 클래스를 생성하세요. 이 클래스는 owner(계좌주 이름), balance(잔액) 속성을 가져야 합니다. 이 클래스는 deposit(amount) (입금) 및 withdraw(amount) (출금) 메서드를 가져야 합니다. 단, 출금 시 잔액보다 큰 금액을 출금하려고 하면 "잔액 부족" 메시지를 출력해야 합니다.

3번 문제

Person, Cook, Developer 세 개의 클래스 코드입니다.

class Person:
 
    def work(self):
        print('열심히 일하자')
 
class Cook(Person):
 
    def __init__(self, menu):
        self.menu = menu
        print('주방장이 될꺼야!')
 
    def work(self):
        print(f'{self.menu}를 만들자')
 
class Developer(Person):
 
    def __init__(self, language):
        self.language = language
        print('CTO가 될꺼야!')
 
    def work(self):
        print(f'{self.language} 코드를 짜보자')
class Person:
 
    def work(self):
        print('열심히 일하자')
 
class Cook(Person):
 
    def __init__(self, menu):
        self.menu = menu
        print('주방장이 될꺼야!')
 
    def work(self):
        print(f'{self.menu}를 만들자')
 
class Developer(Person):
 
    def __init__(self, language):
        self.language = language
        print('CTO가 될꺼야!')
 
    def work(self):
        print(f'{self.language} 코드를 짜보자')
  1. 다음 코드의 출력 결과를 작성하세요.

    person = Person()
    cook = Cook('피자')
    developer = Developer('파이썬')
     
    person.work()
    cook.work()
    developer.work()
    person = Person()
    cook = Cook('피자')
    developer = Developer('파이썬')
     
    person.work()
    cook.work()
    developer.work()
  2. 새로운 MultiPlayer 클래스입니다.

    class MultiPlayer(Developer, Cook):
        pass
    class MultiPlayer(Developer, Cook):
        pass

    다음 코드의 출력 결과를 작성하세요.

    multiPlayer = MultiPlayer('파이썬')
    multiPlayer.work()
    multiPlayer = MultiPlayer('파이썬')
    multiPlayer.work()

답안

class User:
    def __init__(self, data):
        self._id = data['_id']
        self.index = data['index']
        self.name = data['name']
        self.gender = data['gender']
        self.age = data['age']
 
user_1 = User(data[0])
user_2 = User(data[1])
user_3 = User(data[2])
 
user_list = [user_1, user_2, user_3]
user_list[0].name
for i in user_list:
    print(i.name)
 
######################
 
class User:
    def __init__(self, _id, index, name, gender, age):
        self._id = _id
        self.index = index
        self.name = name
        self.gender = gender
        self.age = age
 
    def __repr__(self):
        return f'user_{self.index}'
 
users = [User(**x) for x in data]
print(users)
users[0].name
 
########################
 
from dataclasses import dataclass
 
@dataclass
class User:
    _id: str
    index: str
    name: str
    gender: str
    age: str
 
users = [User(**x) for x in data]
class User:
    def __init__(self, data):
        self._id = data['_id']
        self.index = data['index']
        self.name = data['name']
        self.gender = data['gender']
        self.age = data['age']
 
user_1 = User(data[0])
user_2 = User(data[1])
user_3 = User(data[2])
 
user_list = [user_1, user_2, user_3]
user_list[0].name
for i in user_list:
    print(i.name)
 
######################
 
class User:
    def __init__(self, _id, index, name, gender, age):
        self._id = _id
        self.index = index
        self.name = name
        self.gender = gender
        self.age = age
 
    def __repr__(self):
        return f'user_{self.index}'
 
users = [User(**x) for x in data]
print(users)
users[0].name
 
########################
 
from dataclasses import dataclass
 
@dataclass
class User:
    _id: str
    index: str
    name: str
    gender: str
    age: str
 
users = [User(**x) for x in data]
class BankAccount:
    def __init__(self, owner, balance=0):
        self.owner = owner
        self.balance = balance
 
    def deposit(self, amount):
        self.balance += amount
        return self.balance
 
    def withdraw(self, amount):
        if amount > self.balance:
            print("잔액 부족")
        else:
            self.balance -= amount
            return self.balance
class BankAccount:
    def __init__(self, owner, balance=0):
        self.owner = owner
        self.balance = balance
 
    def deposit(self, amount):
        self.balance += amount
        return self.balance
 
    def withdraw(self, amount):
        if amount > self.balance:
            print("잔액 부족")
        else:
            self.balance -= amount
            return self.balance
  • 1번

    열심히 일하자
    피자를 만들자
    파이썬 코드를 짜보자
    열심히 일하자
    피자를 만들자
    파이썬 코드를 짜보자
  • 2번

    파이썬 코드를 짜보자
    파이썬 코드를 짜보자
{"packages":["numpy","pandas","matplotlib","lxml"]}
10.11 상수 선언11장 모듈과 패키지