Python에서는 eval 함수를 사용하면 문자열 형태로 저장된 수학 표현식을 그대로 계산할 수 있습니다.
사용 예시
예를 들어, 문자열 안에 (4*5) + 22라는 수식이 들어 있다면 eval 함수로 이를 평가하여 결과값을 얻을 수 있습니다.
>>> s = "(4*5) + 22"
>>> eval(s)
42
동작 방식
eval은 Python의 연산자 우선순위 규칙을 그대로 따릅니다. 즉, 괄호가 없는 경우에도 일반적인 수학 표현식과 동일한 순서(곱셈·나눗셈을 덧셈·뺄셈보다 먼저 수행)로 계산됩니다.
주의 사항
eval은 매우 편리하지만, 신뢰할 수 없는 입력값에 사용하면 심각한 보안 취약점과 버그의 원인이 될 수 있습니다. 임의의 코드가 실행될 위험이 있으므로, 외부에서 들어온 문자열에는 절대 eval을 사용하지 않는 것이 좋습니다. 가능하다면 ast.literal_eval 같은 더 안전한 대안을 고려하는 것이 바람직합니다.