我正在尝试为自己编写一个程序来计算从 Tk.Entry() 获取的函数。
问题是,当我尝试运行我的 display() 函数
(它运行 Tkinter、设置窗口并调用 root.Mainloop()),
我收到来自 eval() 的解析错误,该错误来自于应该仅在用户输入所有变量并按下按钮(按钮的命令)时调用的函数。
函数使用eval(variable),而variable是entry.get()。
我在这里做错了什么?
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
另外,错误:
File "Q:\Py\counter.py", line 89, in
cfunc n2=eval(_n) File "", line 0
^ SyntaxError: unexpected EOF while parsing
最佳答案
您没有向我们展示导致错误的代码(_n 的值),因此我们只能猜测。几点建议:
错误消息告诉您问题:意外的 eof。这意味着缺少结束引号或大括号或类似的东西。解析器在获得预期的字符之前就到达了"file"的末尾(正在评估的字符串)。
在 eval 之前放置一条 print 语句,并使用一些特殊字符来分隔它(例如:puts ">>>$_n<<<"),这样您就可以准确地知道正在 eval 的字符串中的内容'd,包括任何前导或尾随空格。
关于Python 和 Tkinter : Function madness,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4984285/