2011-02-13 7 views
1


Tk.Entry()에서 가져온 함수를 계산하는 프로그램을 작성하려고합니다. 내 표시() 함수를 실행하려고하면
문제는이다
(이, Tkinter를 실행 창을 설정하고 호출 root.Mainloop()),
가 나는로부터 평가에서 오는 오류를() 구문 분석 얻을 함수는 사용자가 모든 변수를 입력하고 버튼 (버튼의 명령)을 누르면 이라고 가정해야합니다.
이 함수는 eval (변수)를 사용하고 변수는 entry.get()입니다.
여기서 내가 뭘 잘못하고 있니? 또한파이썬과 Tkinter : 함수 광기

def cfunc(_n,_f,_t0,_tn,): 
xbase=[] 
tbase=[] 
t=0  
n2=eval(_n) #Stuff happens here, cfunc gets entry_n.get() as arguments. 
f2=_f #Also, tabs are correct in the original. 
tmin2=eval(_t0) 
tmax2=eval(_tn) 
tr=tmax2-tmin2 
sk = tr/n2 
i2=tmin2 

, 오류 : 당신은 우리에게 오류 (_n의 값)의 원인이되는 코드를 표시하지 않은 그래서 우리는 단지 추측 할 수

File "Q:\Py\counter.py", line 89, in
cfunc n2=eval(_n) File "", line 0
^SyntaxError: unexpected EOF while parsing

+0

오류를 일으키는 코드를 __part__에 게시 하시겠습니까? –

+0

코드를 보지 않고 말하기가 어렵습니다. 증상에서 나는 당신이 그것을 포장하는 것보다 너무 일찍 평가하고 있다고 말하고 싶습니다. – 6502

+1

우리는 정확히 무엇이 이것을 일으키는 지 알 수 없지만 'eval'이 부분적으로 사용되는지 여부에 상관없이 : 'eval'을 사용하는 것은 실제 광기입니다.) – delnan

답변

1

. 조언의 몇 마디 :

  1. 오류 메시지가 당신에게 문제를 알려주고 있습니다 : 예기치 않은 eof. 즉, 닫는 인용 부호 또는 중괄호 또는 이와 유사한 것이 있음을 의미합니다. 구문 분석기는 예상 한 문자를 얻기 전에 "파일"(문자열이 eval 된 것)의 끝에 도달했습니다.

  2. 는 평가 직전에 인쇄 문을 넣어, 그것을 구분하는 몇 가지 특수 문자를 사용 (예 : 풋 ">>> $ _ N < < <") 그래서 당신은 문자열에서 정확히 무엇을 '평가되는 알 수 있습니다 d, 앞에 오는 공백 또는 뒤 공백이 포함됩니다.

+0

찾았습니다. 버튼 명령에 cfunc()를 괄호 안에 넣는 것을 잊었습니다. 어리석은, 어리석은 나를. –