2013-02-19 3 views
0

저는 파이썬에 처음으로 익숙합니다.이 질문은이 상황에 상당히 구체적 일 수 있습니다. 나는 물리 시뮬레이션의 그래프를 생성하기 위해 IPython을 사용하고 있습니다.사용자 입력을 IPython에서 수행하기

내가 겪고있는 문제는 동일한 코드를 반복해서 반복하지 않아도되는 프로그램을 만들 때 발생합니다. 나는 IPython에서 명령을 실행하기 위해 사용자 입력을 얻으 려하고 모든 것을 직접 입력하지 않아도됩니다.

예를 들어, 나는 pynbody라는 프로그램을 사용하고 있습니다. 내가하려는 것은 ipython으로 테스트 프로그램을 열 때 사용자가 원하는 것을 입력하라는 메시지를 표시합니다. 수입. 그러나, 나는 그것을 실행할 수없는 문자열로만 가져올 수있었습니다.

사용자 입력을 얻기에 관련된 구문, 즉 입력 = raw_input을가 ("무엇 가져올 하시겠습니까?")

당신이 IPython에 입력 한 명령 인 것처럼 실행하는, 즉 무엇

import pynbody

프로그램을 만들면 잘 작동합니다 (예 : test.py).이 프로그램에는 import pynbody가 있습니다. 사용자 입력에서이 작업을 수행하기위한 아이디어가 있습니까? 나는 완전히 당신이 뭘 하려는지 이해하지만 당신은

imported_module = __import__(<string>) 또는 eval('python expression') 더 복잡 위해 http://docs.python.org/2/library/functions.html#eval

를 참조 시도 할 수는 'AST'모듈을보고

답변

0

확실하지 않음 (http://docs.python.org/2/library/ast.html)

하지만 초보자를 위해 나는 패키지를 가져올 수있는 프롬프트를 표시하거나 raw_input을 사용하여 수식을 직접 입력하는 것을 피할 것입니다.

+0

실제로 실행중인 것은 컨텍스트 없이는 훨씬 더 복잡하고 의미가 없으므로 가져 오기를 예로 사용했습니다. 그것은 동일한 전제이지만, eval ('python expression')은 완벽하게 작동했습니다. 감사! – johnpauljones