coding/Project

[Python] 활용편 - 05 - Class 함수(2)(계산기 만들기 with class)

양한마리 2022. 9. 13. 21:10
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
반응형