Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 문자열에 담긴 수학 연산을 실행하는 방법

Python에서는 eval 함수를 사용하면 문자열 형태로 저장된 수학 표현식을 그대로 계산할 수 있습니다.

사용 예시

예를 들어, 문자열 안에 (4*5) + 22라는 수식이 들어 있다면 eval 함수로 이를 평가하여 결과값을 얻을 수 있습니다.

>>> s = "(4*5) + 22"
>>> eval(s)
42

동작 방식

eval은 Python의 연산자 우선순위 규칙을 그대로 따릅니다. 즉, 괄호가 없는 경우에도 일반적인 수학 표현식과 동일한 순서(곱셈·나눗셈을 덧셈·뺄셈보다 먼저 수행)로 계산됩니다.

주의 사항

eval은 매우 편리하지만, 신뢰할 수 없는 입력값에 사용하면 심각한 보안 취약점과 버그의 원인이 될 수 있습니다. 임의의 코드가 실행될 위험이 있으므로, 외부에서 들어온 문자열에는 절대 eval을 사용하지 않는 것이 좋습니다. 가능하다면 ast.literal_eval 같은 더 안전한 대안을 고려하는 것이 바람직합니다.