파이썬이 동적 프로그래밍 언어라고 들었다. Built in function인 eval()이 그러한 특징 때문에 구현 가능한 것인지는 잘 모르겠지만 엄청나게 파워풀함을 알게 되었다.
예전 C/C++ 등을 쓸 때에는 임의의 수식을 스트링 등으로 입력받아 그 수식에 대한 계산을 할려 하면 일일히 lexical analysis 등을 하는 적절한 interpreter를 만들어야 될 것이라 생각하고 포기한 적이 있다. 혹시 내가 C/C++에도 eval() 같은 함수가 있는것 조차 몰랐던가? (아마 unix 등을 쓰면 외부의 lex/parse generator 등을 써서 뭔가 하는 방법이 있긴 한 것 같지만 내 수준 밖의 일이라....)
그런데 파이썬의 eval()은 내가 하고 싶었던 바로 그런 일들을 한줄로 끝내준다 !!!! 세상에 이렇게 편리한 언어가 있다니~~~
다음은 간단한 사용 예제
예전 C/C++ 등을 쓸 때에는 임의의 수식을 스트링 등으로 입력받아 그 수식에 대한 계산을 할려 하면 일일히 lexical analysis 등을 하는 적절한 interpreter를 만들어야 될 것이라 생각하고 포기한 적이 있다. 혹시 내가 C/C++에도 eval() 같은 함수가 있는것 조차 몰랐던가? (아마 unix 등을 쓰면 외부의 lex/parse generator 등을 써서 뭔가 하는 방법이 있긴 한 것 같지만 내 수준 밖의 일이라....)
그런데 파이썬의 eval()은 내가 하고 싶었던 바로 그런 일들을 한줄로 끝내준다 !!!! 세상에 이렇게 편리한 언어가 있다니~~~
다음은 간단한 사용 예제
from math import *
#xs='[v/10. for v in range(0,20)]'
xs=raw_input('input x range : ')
xl=eval(xs)
#fs='sin(x)*cos(x/2)'
fs=raw_input('input function : ')
y=[eval(fs) for x in xl]
print xl
print y
'Coding > Python Matlab' 카테고리의 다른 글
파이썬 - PIL (Python Image Library) (0) | 2012.01.22 |
---|---|
파이썬 - twill을 이용한 web login & data scraping (0) | 2012.01.21 |
파이썬 - find() vs index()/count() (0) | 2012.01.20 |
파이썬 - An Introduction to Python Lists (0) | 2012.01.20 |
파이썬 - 코드 라인수 및 실행 속도 비교 (텍스트 데이터 처리) (0) | 2012.01.19 |