[Python] 파이썬 eval함수 란?

resilient

·

2021. 7. 3. 17:09

728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/67257

 

코딩테스트 연습 - 수식 최대화

IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과

programmers.co.kr

 

위의 알고리즘 문제를 풀다가 eval 함수를 사용했는데 생각보다 자주 사용하게 되는 eval함수에 대해 이번 게시물에서 정리해보려고 한다. 내가 자주 참고하는 블로그를 참고했다.

 

eval함수란??

'eval(expression)' 으로 사용한다.

eval 함수는 한줄로 정리하자면 매개변수로 받은 expression(우리가 아는 일반적인 사칙연산 '식')을 문자열로 받아서, 실행하는 함수다. 즉, 매개변수로 받은 expression은 파이썬에서 실행 가능한 문자열이 들어와야 한다는것이고, 문자열로 들어온 그 expression을 파이썬이 실행해주는 함수이다.

 

 

그럼 식(expression)이란?

식은 값, 연산자, 변수 등 파이썬에서 사용하여 무언가를 표현할 수 있는 것을 말한다.

  • a > b 이런것도 식이고
  • 1 + 2 이런것도 식이다.
  • 물론 '1' 이 자체도 식이라고 할 수있다.

파이썬의 식에 대해서 더 알고싶다면 공식문서를 참고하자.

 

그럼 알기 쉽게 eval 함수의 예시를 한번 간단하게 들어보자.

 

eval("1+2") 라는 문자열이 매개변수로 들어오면
출력 값으로 3이라는 값을 반환하게 된다. 이게 말이된다고? 파이썬은 가능하다.

 

이번에는 절댓값 계산을 예로 들어보자.

 

eval("abs(-8)")
이렇게 문자열로 "abs(-8)" 을 집어넣으면 eval 함수는 문자열 내부에 있는 abs(-8)을 실행해서 8을 반환하게 된다.

 

파이썬은 다시한번 정말 좋은 언어라는 것을 느꼈다...

 

eval함수 예제

 

# 파이썬 eval(expression) 예제
 
# 1. 문자열 덧셈
a = eval('"BlockDMask" + "blog"')
print(f"1. eval('\"BlockDMask\"' + '\" blog\"') : {a}")
 
# 2. 숫자 덧셈
b = eval("100 + 32")
print(f'2. eval("100 + 32") : {b}')
 
# 3. 내장 함수 abs
c = eval("abs(-56)")
print(f'3. eval("abs(-56)") : {c}')
 
# 4. 리스트 길이
d = eval("len([1,2,3,4])")
print(f'4. eval("len([1,2,3,4])") : {d}')
 
# 5. round 함수
e = eval("round(1.5)")
print(f'5. eval("round(1.5)") : {e}')

 

 

반응형

'Language > Python' 카테고리의 다른 글

[Python] 파이썬 lambda 란?  (1) 2021.09.01
[Python] join함수 란?  (0) 2021.07.04
[Python] list comprehension이란?  (0) 2021.07.01
[Python]파이썬 정리노트(계속 업데이트)  (0) 2021.05.28