사람 클래스에서 이름, 나이, 성별을 출력하는 who() 메소드를 추가하세요.
class Human:
def __init__(self, name, age, sex): # 생성자에다 미리 넣어줌
self.name = name # 이 변수가 어떤 변수인지 확인
self.age = age
self.sex = sex
def who(self):
print(f"이름 : {self.name}, 나이 : {self.age}, 성별 : {self.sex}") # f를 이용해 출력
areum = Human("조아름", 25, "여자")
areum.who()
사람 클래스에 이름, 나이, 성별을 받는 selfInfo 메소드를 추가히세요.
class Human:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def who(self):
print(f"이름 : {self.name}, 나이 : {self.age}, 성별 : {self.sex}")
def selfInfo(self, name, age, sex): # self, name, age, sex로 새롭게 받아주는 함수
self.name = name
self.age = age
self.sex = sex
areum = Human("모름", 0, "모름")
areum.selfInfo("아름", 25, "여자")
areum.who()
사람 클래스에 "나의 죽음을 알리지 말라"를 출력하는 소멸자를 추가하세요.
class Human:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def __del__(self): # 소멸자
print("나의 죽음을 알리지 마라.")
def who(self):
print(f"이름 : {self.name}, 나이 : {self.age}, 성별 : {self.sex}")
def selfInfo(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
areum = Human("모름", 0, "모름")
areum.selfInfo("아름", 25, "여자")
del(areum)
주식 종목에 대한 정보를 저장하는 Stock 클래스를 정의해보세요.
Stock 클래스의 객체가 생성될 때 종목명과 종목코드를 입력 받을 수 있도록 생성자를 정의해보세요.
객체에 종목명을 입력할 수 있는 set_name 메서드를 추가해보세요.
객체에 종목코드를 입력할 수 있는 set_code 메서드를 추가해보세요.
종목명과 종목코드를 리턴하는 get_name, get_code 메서드를 추가하세요.
해당 메서드를 사용하여 종목명과 종목코드를 얻고 이를 출력해보세요.
class Stock:
def __init__(self, name, code):
self.name = name
self.code = code
def set_name(self, name):
self.name = name
def set_code(self, code):
self.code = code
def get_name(self):
print(self.name)
def get_code(self):
print(self.code)
stock = Stock("None", "None")
stock.set_name("삼성전자")
stock.set_code("005930")
stock.get_name()
stock.get_code()
생성자에서 종목명, 종목코드, PER, PBR, 배당수익률을 입력 받을 수 있도록 생성자를 수정하세요. PER, PBR, 배당수익률은 float 타입입니다.
class Stock:
def __init__(self, name, code, PER, PBR, 배당수익률):
self.name = name
self.code = code
self.PER = PER
self.PBR = PBR
self.배당수익률 = 배당수익률
def set_name(self, name):
self.name = name
def set_code(self, code):
self.code = code
def get_name(self):
print(self.name)
def get_code(self):
print(self.code)
stock = Stock("삼성전자", "005930", 15.79, 1.33, 2.83)
stock.배당수익률
PER, PBR, 배당수익률은 변경될 수 있는 값입니다. 이 값을 변경할 때 사용하는 set_per, set_pbr, set_dividend 메서드를 추가하세요.
class Stock:
def __init__(self, name, code, per, pbr, dividend):
self.name = name
self.code = code
self.per = per
self.pbr = pbr
self.dividend = dividend
def set_name(self, name):
self.name = name
def set_code(self, code):
self.code = code
def set_per(self, per):
self.per = per
def set_pbr(self, pbr):
self.pbr = pbr
def set_dividend(self, dividend):
self.dividend = dividend
def get_name(self):
print(self.name)
def get_code(self):
print(self.code)
stock = Stock("삼성전자", "005930", 15.79, 1.33, 2.83)
stock.dividend # 배당 수익률 영어로 변경
아래의 표를 참조하여 3종목에 대해 객체를 생성하고 이를 파이썬 리스트에 저장하세요. 파이썬 리스트에 저장된 각 종목에 대해 for 루프를 통해 종목코드와 PER을 출력해보세요.
class Stock:
def __init__(self, name, code, per, pbr, dividend):
self.name = name
self.code = code
self.per = per
self.pbr = pbr
self.dividend = dividend
def set_name(self, name):
self.name = name
def set_code(self, code):
self.code = code
def set_per(self, per):
self.per = per
def set_pbr(self, pbr):
self.pbr = pbr
def set_dividend(self, dividend):
self.dividend = dividend
def get_name(self):
print(self.name)
def get_code(self):
print(self.code)
samsung = Stock("삼성전자", "005930", 15.79, 1.33, 2.83)
hyundai = Stock("현대차", "005380", 8.70, 0.35, 4.27)
lg = Stock("LG전자", "066570", 317.34, 0.69, 1.37)
stock = [samsung, hyundai, lg]
for i in stock: # # i-> Stock 클래스의 객체를 바인딩하기 때문
print(f"주식명 : {i.name}, 주식코드 : {i.code}, PER : {i.per}, PBR : {i.pbr}, 배당수익률 : {i.dividend}")
은행에 가서 계좌를 개설하면 은행이름, 예금주, 계좌번호, 잔액이 설정됩니다. Account 클래스를 생성한 후 생성자를 구현해보세요. 생성자에서는 예금주와 초기 잔액만 입력 받습니다. 은행이름은 SC은행으로 계좌번호는 3자리-2자리-6자리 형태로 랜덤하게 생성됩니다.
클래스 변수를 사용해서 Account 클래스로부터 생성된 계좌 객체의 개수를 저장하세요.
Account 클래스로부터 생성된 계좌의 개수를 출력하는 get_account_num() 메서드를 추가하세요.
Account 클래스에 입금을 위한 deposit 메서드를 추가하세요. 입금은 최소 1원 이상만 가능합니다.
Account 클래스에 출금을 위한 withdraw 메서드를 추가하세요. 출금은 계좌의 잔고 이상으로 출금할 수는 없습니다.
import random
class Account:
account_count = 0
def __init__ (self, name, money):
self.name = name
self.money = money
self.bank = "SC은행"
num1 = random.randint(0, 999) # 3자리 수 랜덤 생성
num2 = random.randint(0, 99) # 2자리 수 랜덤 생성
num3 = random.randint(0, 999999) # 6자리 수 랜덤 생성
# .zfill(숫자) 빈 자리를 0으로 채워줌
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.num = num1 + '-' + num2 + '-' + num3 # num에 세개의 랜덤 num을 더한 값을 넣어줌
Account.account_count += 1
@classmethod
def get_account_num(cls):
print(cls.account_count) # Account.account_count
def deposit(self, plusMoney):
if plusMoney >= 1:
self.money += plusMoney
def withdraw(self, minusMoney):
if self.money > minusMoney:
self.money -= minusMoney
else:
print("출금할 수 없습니다")
kim = Account("김민수", 100)
kim.deposit(500)
kim.withdraw(1000)
print(kim.money)
le = Account("이만득", 200)