본문 바로가기

Language

[Python] 문자열을 연산자로 사용하기

728x90

원하는 것

문자열로 연산식을 받고 이것에 대한 계산결과를 보고 싶습니다.

예로 "3 + 2" 를 받으면 5이라는 결과를 받고 싶습니다.

해결방법

단순하게 if를 사용해도 eval 을 사용해도 됩니다.

그런데 eval의 경우에는 원하는 용도 이외에도 처리해버리기 때문에 위험합니다.

다른 방법으로 python에서는 operator 라는 패키지를 제공합니다.

이것을 활용하여 연산처리를 진행하면 됩니다.

import operator

ops = {
    "+": operator.add,
    "-": operator.sub,
    "*": operator.mul,
    "/": operator.truediv
}

input = "3 + 2"
split_input = input.split(" ")

print(ops[input[1]](input[0], input[2]))
# 5

operator 연산자 목록은 다음을 참고하시면 됩니다.

https://docs.python.org/ko/3/library/operator.html

반응형