class Calculator:
def init(self):
print('[Calculator] init() called!')
cal = Calculator()
class Calculator:
def init(self, n1, n2):
print('[Calculator] init() called!')
self.num1 = n1
self.num2 = n2
cal = Calculator(10, 20)
print(f'cal.num1 = {cal.num1}')
print(f'cal.num2 = {cal.num2}')
class Calculator:
def init(self):
print('[Calculator] init() called!')
self.num1 = 10 #-> n1 로 하지 않고 아예 10으로 값을 고정
self.num2 = 20
cal = Calculator()
print(f'cal.num1 = {cal.num1}')
print(f'cal.num2 = {cal.num2}')
class Calculator:
def init(self, n):
print('[Calculator] init() called!')
self.num1 = n
self.num2 = 203
cal = Calculator(3.14)
print(f'cal.num1 = {cal.num1}')
print(f'cal.num2 = {cal.num2}')
class P_Class:
def init(self, pNum1, pNum2):
print('[P_Class] init() called!!')
self.pNum1 = pNum1
self.pNum2 = pNum2
class C_class(P_Class):
def init(self, cNum1, cNum2):
print('[C_Class] init() called!!')
# P_Class.__init__(self, cNum1, cNum2)
super().__init__(cNum1, cNum2)
self.cNum1 = cNum1
self.cNum2 = cNum2
cls = C_class(10, 20)
class MidExam:
def init(self, s1, s2, s3):
print('[MidExam] init()')
self.mid_kor_score = s1
self.mid_eng_score = s2
self.mid_mat_score = s3
def printScores(self):
print(f'mid_kor_score: {self.mid_kor_score}')
print(f'mid_eng_score: {self.mid_eng_score}')
print(f'mid_mat_score: {self.mid_mat_score}')
class EndExam(MidExam):
def init(self, s1, s2, s3, s4, s5, s6):
print('[EndExam] init()')
super().__init__(s1, s2, s3)
self.end_kor_score = s4
self.end_eng_score = s5
self.end_mat_score = s6
def printScores(self):
super().printScores()
print(f'end_kor_score: {self.mid_kor_score}')
print(f'end_eng_score: {self.mid_eng_score}')
print(f'end_mat_score: {self.mid_mat_score}')
def getTotalScore(self):
total = self.mid_kor_score + self.mid_eng_score + self.mid_mat_score
total += self.end_kor_score + self.end_eng_score + self.end_mat_score
return total
def getAverageScore(self):
return self.getTotalScore() / 6
exam = EndExam(65, 74, 57, 66, 77, 88)
print(exam.printScores())
print(exam.getTotalScore())
print(exam.getAverageScore())
class Car01:
def drive(self):
print('drive() method called!')
class Car02:
def turbo(self):
print('turbo() method called!!')
class Car03:
def fly(self):
print('fly() method called')
class Car(Car01, Car02, Car03):
def init(self):
pass
myCar = Car()
myCar.drive()
myCar.turbo()
myCar.fly()
class BasicCalculator:
def add(self, n1, n2):
return n1 + n2
def sub(self, n1, n2):
return n1 - n2
def mul(self, n1, n2):
return n1 * n2
def div(self, n1, n2):
return n1 / n2
class DeveloperCalculator:
def mod(self, n1, n2):
return n1 % n2
def flo(self, n1, n2):
return n1 // n2
def exp(self, n1, n2):
return n1 ** n2
class NewCalculator(BasicCalculator, DeveloperCalculator):
def init(self):
pass
cal = NewCalculator()
print(cal.add(10, 55))
print(cal.sub(10, 55))
print(cal.mul(10, 55))
print(cal.div(10, 55))
print(cal.mod(10, 55))
print(cal.flo(10, 55))
print(cal.exp(10, 55))
class TriangleArea:
def init(self, w, h):
self.width = w
self.height = h
def printTriangleInfo(self):
print(f'self.width : {self.width}')
print(f'self.height : {self.height}')
def getArea(self):
return self.width * self.height / 2
class NewTriangleArea(TriangleArea):
def init(self, w, h):
super().init(w, h)
def getArea(self):
return str(super().getArea())+'cm^2' # -> 이 부분 중요 / super().getArea()
ta = TriangleArea(7, 8)
ta2 = NewTriangleArea(7, 8)
ta.printTriangleInfo()
ta2.printTriangleInfo()
t1 = ta.getArea()
t2 = ta2.getArea()
print(ta.getArea())
print(ta2.getArea())
print(t1)
print(t2)
from abc import ABCMeta
from abc import abstractmethod
class Airplane(metaclass = ABCMeta):
@abstractmethod
def flight(self):
pass
def forward(self):
print('전진!!')
def backward(self):
print('후진!!')
class Airliner(Airplane):
def init(self, c):
self.color = c
def flight(self):
print('FLY!!! 시속 400 km/h 비행 ')
class Jetplane(Airplane):
def init(self, c):
self.color = c
def flight(self):
print('FLY!!! 시속 700 km/h 비행 ')
al = Airliner('red')
al.flight()
al.backward()
al.forward()
fl = Jetplane('grey')
fl.backward()
fl.forward()
fl.flight()
from abc import ABCMeta
from abc import abstractmethod
class Calculator(metaclass = ABCMeta):
@abstractmethod
def add(self, n1, n2):
pass
@abstractmethod
def sub(self, n1, n2):
pass
@abstractmethod
def mul(self, n1, n2):
pass
@abstractmethod
def div(self, n1, n2):
pass
class DeveloperCalculator(Calculator):
def add(self, n1, n2):
print(n1 + n2)
def sub(self, n1, n2):
print(n1 - n2)
def mul(self, n1, n2):
print(n1 * n2)
def div(self, n1, n2):
print(n1 / n2)
def mod(self, n1, n2):
print(n1%n2)
def flo(self, n1, n2):
print(n1 // n2)
dc = DeveloperCalculator().add(3, 40)
print(dc) # -> 리턴 값이 없어서 none이 나옴
n1 = 10
n2 = 0
try:
print(n1 / n2)
print(n1 - n2)
print(n1 + n2)
print(n1 * n2)
except:
print('예상치 못하 문제 발생!')
print('다음 프로그램이 정상 방영됩니다.')
nums = []
n = 1
while n < 6:
try:
num = int(input('input Number: '))
except:
print('예외발생!')
continue
nums.append(num)
n += 1
print(f'nums = {nums}')
nums = []
n = 1
while n < 6:
try:
num = int(input('input number: '))
except:
print('예외 발생')
continue # 카운트 되면 안되니까 while 문을 다음 실행으로 넘겨버린다.
else: # 예외가 발생하지 않으면 실행한다.
if num % 2 == 0:
nums.append(num)
n += 1
else:
print('입력한 숫자는 홀수 입니다.', end = '')
print('다시 입력 하세요.')
continue
print(f'숫자들 = {nums}')
eveList = []; oddList = []; floatList = []
n = 1
while n < 6:
try:
num = float(input('input number: '))
except:
print('exception raise!')
print('input number again')
continue # 카운트가 되면 안된다.
else:
if num - int(num) != 0:
print('float number!')
floatList.append(num)
else:
if num % 2 == 0:
print('even number')
eveList.append(int(num))
else:
print('odd number')
oddList.append(int(num))
n += 1
print(f'짝수들 = {eveList}')
print(f'홀수들 = {oddList}')
print(f'실수들 = {floatList}')
try :
inputData = input('input number: ')
numInt = int(inputData)
except:
print('Exception rise!!!')
print('Not Number!!!')
else:
if numInt % 2 == 0:
print('even number!!!')
else: print('odd number!!!')
finally:
print(f'Input Data: {inputData}')
eveList = []; oddList = []; floatList = []; dataList = []
n = 1
while n < 6:
try:
data = input('input number: ')
floatNum = float(data)
except:
print('Exception rise!!')
print('Not Number!!')
continue
else:
if floatNum - int(floatNum) != 0:
print('float number!!')
floatList.append(floatNum)
else:
if floatNum % 2 == 0:
print('even number!!')
eveList.append(int(floatNum))
else:
print('odd number!!')
oddList.append(int(floatNum))
n += 1
finally:
dataList.append(data)
print(f'짝수 = {eveList}')
print(f'홀수 = {oddList}')
print(f'실수 = {floatList}')
print(f'모든 데이터 = {dataList}')
num1 = int(input('input number: '))
num2 = int(input('input number: '))
try:
print(f'num1 / num2 = {num1 / num2}')
except Exception as e:
print('0으로 나눌 수 없음.')
print(f'exception : {e}')
finally:
print(f'모든 데이타: {num1, num2}')
print(f'num1 num2 = {num1 num2}')
print(f'num1 - num2 = {num1 - num2}')
print(f'num1 + num2 = {num1 + num2}')
def divCalculator(n1, n2):
if n2 != 0:
print(f'{n1} / {n2} = {n1 / n2}')
else:
raise Exception('0으로 나눌 수 없습니다.')
num1 = int(input('input number1: '))
num2 = int(input('input number2: '))
try:
divCalculator(num1, num2)
except Exception as e:
print(f'Exception: {e}')
def sendSMS(msg):
if len(msg) > 10:
raise Exception('길이 초과!! MMS 전환 후 발송!!', 1)
else:
print('SMS 발송')
def sendMMS(msg):
if len(msg) <= 10:
raise Exception('길이 미달!! SMS 전환 후 발송!!', 2)
else:
print('MMS 발송!!')
msg = input('input message: ')
try:
sendSMS(msg)
except Exception as e:
print(f'e: {e.args[0]}')
print(f'e: {e.args[1]}')
if e.args[1] == 1:
sendMMS(msg)
elif e.args[1] == 2:
sendMMS(msg)