[코드카타] 간단한 식 계산하기

seonyoung·2024년 9월 4일
0

📁문제

문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.

📁 입출력 예

💡 나의 정답

def solution(binomial):
    answer = 0
    a, op, b = binomial.split()
    if op == '+':
        answer = int(a) + int(b)
    elif op == '-':
        answer = int(a) - int(b)
    else:
        answer = int(a) * int(b)
    return answer 

💡 또 다른 정답

def solution(binomial):
    return eval(binomial)
  • 나는 하나씩 모두 입력해서 정답을 도출했는데 eval하나만 넣고 돌리면 바로 정답이 나올 줄이야..😂
  • 역시 python은 방법이 정말 다양하다는 것을 깨달았음

📌 eval 함수 : 문자열 형태의 파이썬 표현식을 실행하고 그 결과를 반환
결국, 이 함수는 binomial이라는 문자열 수식을 파이썬 코드로 평가하여 계산 결과를 돌려줌
ㄴ ex) binomial이 "3 + 5"라면, eval("3 + 5")는 8을 반환
binomial이 "10 / 2"라면, eval("10 / 2")는 5.0을 반환

주의할 점 : eval 함수는 주어진 문자열이 임의의 코드 실행을 가능하게 하므로, 신뢰할 수 없는 입력에 대해 사용하지 않는 것이 좋음

profile
원하는 바를 이루고 싶은 사람입니다.

0개의 댓글