728x90
:: 파이썬 과제 - class 활용하기 (2) ::
2. 계산기 만들기 with class
더하기, 빼기, 곱하기, 나누기
2. 계산기 만들어보기(with class)
요구조건
- 설정한 숫자를 계산해줄 클래스를 선언해주세요
- 메소드를 호출해서 num1, num2를 설정할 수 있도록 해주세요
- 입력된 숫자의 더하기, 빼기, 곱하기, 나누기 연산 결과를 구하는 메소드를 생성해주세요
풀이)
# 클래스 함수 선언
class Calc() :
def __init__(self) : # __init__ 함수로 선택 목록을 인스턴스 실행시 보여준다.
print("\n"
":: 사칙 연산 ::\n"
"===========================\n"
"1.더하기(+)\n"
"2.빼기(-)\n"
"3.곱하기(*)\n"
"4.나누기(/)\n"
"0.Quit\n"
"===========================\n")
def plus(self, num1, num2) : # 더하기 함수
self.num3 = num1 + num2
return self.num3
def minus(self, num1, num2) : # 빼기 함수
self.num3 = num1 - num2
return self.num3
def multiple(self, num1, num2): # 곱하기 함수
self.num3 = num1 * num2
return self.num3
def divide(self, num1, num2): # 나누기 함수
self.num3 = num1 / num2
return self.num3
def On_Off() : # 반복문에서 종료, 재시작을 선택하는 함수
result = int(input("\n"
"Off(1) - 종료 / On(2) - 재시작 : "))
if result == 2:
pass
elif result == 1:
print("종료합니다.")
quit() # 종료하는 함수
while True :
calc = Calc() # 인스턴스 생성
N = int(input("목록에서 값을 구할 사칙 연산 번호를 입력해주세요 : "))
if N == 1 :
try : # 에러가 없으면 아래 내용을 시도한다.
num1, num2 = map(int, input("수식을 입력하세요(a+b) : ").split("+"))
print(f"{num1} + {num2} = {calc.plus(num1, num2)}") # calc.plus(num1, num2) 클래스 안에 있는 더하기 메소드 실행
except : # 위에 내용이 에러가 있으면 아래 내용을 시도한다.
print("\n"
"수식을 잘못 입력했습니다.\n"
"\n"
"재시작 할까요?")
pass
On_Off() # 반복문에서 종료, 재시작을 선택하는 함수
if N == 2 :
try : # 에러가 없으면 아래 내용을 시도한다.
num1, num2 = map(int, input("수식을 입력하세요(a+b) : ").split("-"))
print(f"{num1} - {num2} = {calc.minus(num1, num2)}") # calc.minus(num1, num2) 클래스 안에 있는 빼기 메소드 실행
except : # 위에 내용이 에러가 있으면 아래 내용을 시도한다.
print("\n"
"수식을 잘못 입력했습니다.\n"
"\n"
"재시작 할까요?")
pass
On_Off() # 반복문에서 종료, 재시작을 선택하는 함수
if N == 3 : # 에러가 없으면 아래 내용을 시도한다.
try :
num1, num2 = map(int, input("수식을 입력하세요(a*b) : ").split("*"))
print(f"{num1} * {num2} = {calc.multiple(num1, num2)}") # calc.multiple(num1, num2) 클래스 안에 있는 곱하기 메소드 실행
except: # 위에 내용이 에러가 있으면 아래 내용을 시도한다.
print("\n"
"수식을 잘못 입력했습니다.\n"
"\n"
"재시작 할까요?")
pass
On_Off() # 반복문에서 종료, 재시작을 선택하는 함수
if N == 4 :
try : # 에러가 없으면 아래 내용을 시도한다.
num1, num2 = map(int, input("수식을 입력하세요(a/b) : ").split("/"))
print(f"정답 : {num1} / {num2} = {calc.divide(num1, num2)}") # calc.divide(num1, num2) 클래스 안에 있는 나누기 메소드 실행
except: # 위에 내용이 에러가 있으면 아래 내용을 시도한다.
print("\n"
"수식을 잘못 입력했습니다.\n"
"\n"
"재시작 할까요?")
pass
On_Off() # 반복문에서 종료, 재시작을 선택하는 함수
elif N == 0 :
print("종료합니다.")
break
else :
print("재시작 합니다.")
실행 예시)
:: 사칙 연산 ::
===========================
1.더하기(+)
2.빼기(-)
3.곱하기(*)
4.나누기(/)
0.Quit
===========================
# __init__ 으로 보여지는 목록 ↑↑
목록에서 값을 구할 사칙 연산 번호를 입력해주세요 : 1 # <--입력--
수식을 입력하세요(a+b) : 3+5 # --입력--
3 + 5 = 8
# while 반복문에 class안에 메소드가 실행되는 내용 :: 수식을 계산한 값 ↑↑
Off(1) - 종료 / On(2) - 재시작 : 2 # <--입력--
# On_Off() 함수로 실행되는 내용 ↑↑
재시작 합니다.
:: 사칙 연산 ::
===========================
1.더하기(+)
2.빼기(-)
3.곱하기(*)
4.나누기(/)
0.Quit
===========================
# __init__ 으로 보여지는 목록 ↑↑
목록에서 값을 구할 사칙 연산 번호를 입력해주세요 : 3 # <--입력--
수식을 입력하세요(a*b) : 39*5 # --입력--
39 * 5 = 195
# while 반복문에 class안에 메소드가 실행되는 내용 :: 수식을 계산한 값 ↑↑
Off(1) - 종료 / On(2) - 재시작 : 2 # <--입력--
# On_Off() 함수로 실행되는 내용 ↑↑
재시작 합니다.
:: 사칙 연산 ::
===========================
1.더하기(+)
2.빼기(-)
3.곱하기(*)
4.나누기(/)
0.Quit
===========================
# __init__ 으로 보여지는 목록 ↑↑
목록에서 값을 구할 사칙 연산 번호를 입력해주세요 : 0 # <--입력--
종료합니다.
종료 코드 0(으)로 완료된 프로세스
728x90
반응형
'coding > Project' 카테고리의 다른 글
[Python] 활용편 - 07 - try / except 활용(계산기 심화) (0) | 2022.09.14 |
---|---|
[Python] 활용편 - 06 - Class 함수(3)(프로필 관리 기능 만들기) (0) | 2022.09.13 |
[Python] 활용편 - 04 - Class 함수(1)(도형 넓이 계산기 만들기) (0) | 2022.09.13 |
[python] 활용편 - 03 - 게임만들기(기억력 게임) (0) | 2022.08.23 |