728x90
1. Account 클래스로부터 3개 이상 인스턴스를 생성하고 생성된 인스턴스를 리스트에 저장해보세요.
정답확인 ->
import random
class Account:
# class variable
account_count = 0
def __init__(self, name, balance):
self.deposit_count = 0
self.name = name
self.balance = balance
self.bank = "SC은행"
# 3-2-6
num1 = random.randint(0, 999)
num2 = random.randint(0, 99)
num3 = random.randint(0, 999999)
num1 = str(num1).zfill(3) # 1 -> '1' -> '001'
num2 = str(num2).zfill(2) # 1 -> '1' -> '01'
num3 = str(num3).zfill(6) # 1 -> '1' -> '0000001'
self.account_number = num1 + '-' + num2 + '-' + num3 # 001-01-000001
Account.account_count += 1
@classmethod
def get_account_num(cls):
print(cls.account_count) # Account.account_count
def deposit(self, amount):
if amount >= 1:
self.balance += amount
self.deposit_count += 1
if self.deposit_count % 5 == 0: # 5, 10, 15
# 이자 지금
self.balance = (self.balance * 1.01)
def withdraw(self, amount):
if self.balance > amount:
self.balance -= amount
def display_info(self):
print("은행이름: ", self.bank)
print("예금주: ", self.name)
print("계좌번호: ", self.account_number)
print("잔고: ", self.balance)
data = []
k = Account("KIM", 10000000)
l = Account("LEE", 10000)
p = Account("PARK", 10000)
data.append(k)
data.append(l)
data.append(p)
print(data)
2. 반복문을 통해 리스트에 있는 객체를 순회하면서 잔고가 100만원 이상인 고객의 정보만 출력하세요.
정답확인 ->
import random
class Account:
# class variable
account_count = 0
def __init__(self, name, balance):
self.deposit_count = 0
self.name = name
self.balance = balance
self.bank = "SC은행"
# 3-2-6
num1 = random.randint(0, 999)
num2 = random.randint(0, 99)
num3 = random.randint(0, 999999)
num1 = str(num1).zfill(3) # 1 -> '1' -> '001'
num2 = str(num2).zfill(2) # 1 -> '1' -> '01'
num3 = str(num3).zfill(6) # 1 -> '1' -> '0000001'
self.account_number = num1 + '-' + num2 + '-' + num3 # 001-01-000001
Account.account_count += 1
@classmethod
def get_account_num(cls):
print(cls.account_count) # Account.account_count
def deposit(self, amount):
if amount >= 1:
self.balance += amount
self.deposit_count += 1
if self.deposit_count % 5 == 0: # 5, 10, 15
# 이자 지금
self.balance = (self.balance * 1.01)
def withdraw(self, amount):
if self.balance > amount:
self.balance -= amount
def display_info(self):
print("은행이름: ", self.bank)
print("예금주: ", self.name)
print("계좌번호: ", self.account_number)
print("잔고: ", self.balance)
data = []
k = Account("KIM", 10000000)
l = Account("LEE", 10000)
p = Account("PARK", 10000)
data.append(k)
data.append(l)
data.append(p)
for c in data:
if c.balance >= 1000000:
c.display_info()
3. 입금과 출금 내역이 기록되도록 코드를 업데이트 하세요. 입금 내역과 출금 내역을 출력하는 deposit_history와 withdraw_history 메서드를 추가하세요.
정답확인 ->
import random
class Account:
# class variable
account_count = 0
def __init__(self, name, balance):
self.deposit_count = 0
self.deposit_log = []
self.withdraw_log = []
self.name = name
self.balance = balance
self.bank = "SC은행"
# 3-2-6
num1 = random.randint(0, 999)
num2 = random.randint(0, 99)
num3 = random.randint(0, 999999)
num1 = str(num1).zfill(3) # 1 -> '1' -> '001'
num2 = str(num2).zfill(2) # 1 -> '1' -> '01'
num3 = str(num3).zfill(6) # 1 -> '1' -> '0000001'
self.account_number = num1 + '-' + num2 + '-' + num3 # 001-01-000001
Account.account_count += 1
@classmethod
def get_account_num(cls):
print(cls.account_count) # Account.account_count
def deposit(self, amount):
if amount >= 1:
self.deposit_log.append(amount)
self.balance += amount
self.deposit_count += 1
if self.deposit_count % 5 == 0: # 5, 10, 15
# 이자 지금
self.balance = (self.balance * 1.01)
def withdraw(self, amount):
if self.balance > amount:
self.withdraw_log.append(amount)
self.balance -= amount
def display_info(self):
print("은행이름: ", self.bank)
print("예금주: ", self.name)
print("계좌번호: ", self.account_number)
print("잔고: ", self.balance)
def withdraw_history(self):
for amount in self.withdraw_log:
print(amount)
def deposit_history(self):
for amount in self.deposit_log:
print(amount)
k = Account("Kim", 1000)
k.deposit(100)
k.deposit(200)
k.deposit(300)
k.deposit_history()
k.withdraw(100)
k.withdraw(200)
k.withdraw_history()
728x90
'알고리즘' 카테고리의 다른 글
파이썬 클래스 예제 1-9 (0) | 2022.04.27 |
---|---|
파이썬 클래스 예제 1-8 (0) | 2022.04.25 |
파이썬 클래스 예제 1-6 (0) | 2022.04.22 |
파이썬 클래스 예제 1-5 (0) | 2022.04.19 |
파이썬 클래스 예제 1-4 (0) | 2022.04.18 |