매개변수로 받는 식을 문자열로 받아서 실행하는 함수
식: 값, 연산자, 변수 등 파이썬에서 사용하여 무언가를 표현할 수 있는 것(ex. 연산자, <, >, while, for 등)
ex1. eval("1+2")
→ 3
ex2. eval("abs(-8)")
→ 8
⇒ input 함수를 이용해서 사용자로부터 원하는 파이썬 함수를 입력 받거나 식을 입력 받아서 마음대로 프로그램을 조종할 수 있음 → eval 함수의 함정; 해킹에 취약…!
# 파이썬 eval(expression) 예제
# 1. 문자열 덧셈
a = eval('"MAMA" + "MOO"')
print(f"1. eval('\"MAMA\"' + '\"MOO\"') : {a}") # MAMAMOO
# 2. 숫자 덧셈
b = eval("100 + 32")
print(f'2. eval("100 + 32") : {b}') # 132
# 3. 내장 함수 abs
c = eval("abs(-56)")
print(f'3. eval("abs(-56)") : {c}') # 56
# 4. 리스트 길이
d = eval("len([1,2,3,4])")
print(f'4. eval("len([1,2,3,4])") : {d}') # 4
# 5. round 함수
e = eval("round(1.5)")
print(f'5. eval("round(1.5)") : {e}') # 2