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

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

2023년 10월 28일·iju707
iju707

원하는 것

문자열로 연산식을 받고 이것에 대한 계산결과를 보고 싶습니다. 예로 3 + 2 를 받으면 5 이라는 결과를 받고 싶습니다.

방법 1 : eval

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

>> eval("3 + 2")
5

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

방법 2 : operator

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

마지막 수정일자