I learned

내일배움캠프 AI - TIL 07

이모냥냥 2022. 9. 6. 20:40
반응형
❤️‍🔥TIL : Today I Learned❤️‍🔥
그날그날 내가 공부한 것을 정리하는 것

 

 

 

내일배움캠프 AI트랙 7Day

 

 

오늘 배운 내용.

이창호 튜터님 - python 문법 2일차

[과제] 사용자의 입력을 받아 계산기 기능을 구현하기

  • main.py 파일에서 사용자의 입력을 받아 기능을 처리해주세요
  • 사용자가 입력한 숫자와 연산기호(+, -, *, /)에 따른 연산 결과를 출력해주세요
  • 더하기, 곱하기, 빼기, 나누기 기능을 하는 함수는 main.py가 아닌 다른 파일에서 작성해주세요
  • 사용자의 입력을 받는 방식은 자유롭게 작성하셔도 무관합니다. 다만, 입력받기 전 사용자가 어떤 방식으로 입력해야 하는지 가이드 출력해주세요

> main.py

내가 짠 계산기는 하나의 문자열로 이루어진 연산식을 입력을 받아 연산을 하는 계산기를 만들고자 했다. 물론 문자열 계산에서 가장 쉬운것은 eval()로 처리할 수 있지만 함수로 쪼개서 만들어 보았다.

 

입력받은 연산식을 지정된 Operator +,-,*,/ 을 기준으로 앞뒤 숫자를 찾아낸다.

이때 split()을 사용하는데 지정된 여러개의 Operator 중 한 개 이상의 기준문자를 사용하기 위해서 정규표현 re를 import해서 사용했다.

1+2라는 연산식을 ['1','+','2']로 나누고 해당 내용으로 calc.py의 calculation() 함수를 실행시킨다.

import re
from calc import calculation

exp = input("계산이 필요한 간단한 식을 입력해주세요. ")
num1, operator, num2 = re.split('([-|+|*|/])', exp)
result = calculation(int(num1), operator, int(num2))
print(f'결과 : {result}')

 

> calc.py

def calc(num1, operator, num2):
    if operator == '+':
        return add(num1, num2)
    elif operator == '-':
        return subtract(num1, num2)
    elif operator == '*':
        return multiply(num1, num2)
    elif operator == '/':
        return divide(num1, num2)
    else:
        return 'Error!'


def add(num1, num2):
    return num1+num2


def subtract(num1, num2):
    return num1-num2


def multiply(num1, num2):
    return num1*num2


def divide(num1, num2):
    return num1 / num2

>> 결과 화면 <<

반응형