본문 바로가기

개발/python

eval/exec

가끔 문제를 풀다 보면 풀이에 eval과 exec가 많이 보인다. 이것들은 뭘까?

 

eval과 exec 함수는 파이썬의 내장함수다. 문자열로 이루어진 식 또는 문을 파이썬 코드로 실행할 때 사용한다.

eval은 문자열로 구성된 식을 처리한다.

print(eval("1 + 2"))
#3
a = 1
print(eval("a+2"))
#3
x = eval("a+2")
print(x)

위와 같이 식 안의 것들을 처리하고 식만 처리함으로 안에서의 변수 선언 및 할당은 할 수 없다. 그리고 코드 내에 변수들의 값도 받아서 식을 처리할 수 있다. 결괏값이 나오기 때문에 변수에 담아서 사용할 수도 있다.

 

exec는 문으로 구성된 파이썬 코드를 실행한다.

a = 1
print(exec("1 + 2"))        #None
print(exec("a+2"))          #None
print(exec("x=1 + 2"))    #None
print(exec("y=a+2"))      #None
print(x)                          #3
print(y)                          #3
z = exec("a=1+2")
print(z)                          #None

exec는 식만으로 이루어진 문자열은 인식하지 않는다. 그리고 코드를 수행하기만 하지 결과를 반환하지 않는다. 따로 출력하려면 변수를 선언해 줘야 한다. 수행하기만 해서 따로 변수에 담을 수 없다.

 

읽어주셔서 감사합니다.

'개발 > python' 카테고리의 다른 글

Slicing  (0) 2024.05.10
백준 2753번  (0) 2024.05.08
Row String  (0) 2024.05.08
map함수  (0) 2024.05.07
colab  (0) 2024.05.03