我希望我的代码检查这两个条件是否与输入框中输入的相同
I want my code to check if the two conditions are the same as what has been entered in the Entry Boxes
我的代码中有输入框。我希望我的代码检查输入框中输入的内容是否满足条件,如果不满足则输出一条错误消息。如果满足条件,它会继续进行计算。我的问题是,如果不满足条件,消息框工作正常,但如果满足条件,则弹出错误。没有计算。
我收到以下错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\BW345KB\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\BW345KB\OneDrive - EY\Documents\My Work\My Projects\JULES PROVMAT IMPAIRMENT App\prov_matrix.py", line 199, in prov_result
cond_tw = eval(tw)
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
错误不明可以参考图片
dd = self.dd.get()
tot = self.tot.get()
on = self.one.get()
tt = self.thirty.get()
sx = self.sixty.get()
nn = self.ninety.get()
tw = self.twenty.get()
cur = self.curr.get()
#for conditions
cond_dd = eval(dd)
cond_tw = eval(tw)
if (cond_tw > 0 and cond_dd == 90):
messagebox.showwarning("Error", "Your Definition of Default Is " + dd + " Days Past Due")
else:
up1 = eval(tot) - eval(cur) #paid total - current
up2 = up1 - eval(on) #paid current - 1-30
up3 = up2 - eval(tt) #paid 1-30 - 31-60
up4 = up3 - eval(sx) #paid 31-60 - 61-90
up5 = up4 - eval(nn) #written off
根据我对提供的资源中的问题的理解,缺少完整的代码,正如@jasonharper 所说,没有 minimal reproducible example,以下似乎是一个可能的解决方案。
正如@jasonharper 指出的那样,tw 似乎是一个空字符串,因此当通过 eval 函数传递时 python 抛出一个 EOF(文件结束)异常。
我认为这里需要尝试语句并捕获异常,如果捕获到异常,我们会提示用户输入的字符串为空,即 -: ''.
像这样-:
dd = self.dd.get()
tot = self.tot.get()
on = self.one.get()
tt = self.thirty.get()
sx = self.sixty.get()
nn = self.ninety.get()
tw = self.twenty.get()
cur = self.curr.get()
#for conditions
try :
cond_dd = eval(dd)
cond_tw = eval(tw)
except Exception :
messagebox.showwarning("Error", "You have provided no condition for either dd or tw.")
if (cond_tw > 0 and cond_dd == 90):
messagebox.showwarning("Error", "Your Definition of Default Is " + dd + " Days Past Due")
else:
up1 = eval(tot) - eval(cur) #paid total - current
up2 = up1 - eval(on) #paid current - 1-30
up3 = up2 - eval(tt) #paid 1-30 - 31-60
up4 = up3 - eval(sx) #paid 31-60 - 61-90
up5 = up4 - eval(nn) #written off
我的代码中有输入框。我希望我的代码检查输入框中输入的内容是否满足条件,如果不满足则输出一条错误消息。如果满足条件,它会继续进行计算。我的问题是,如果不满足条件,消息框工作正常,但如果满足条件,则弹出错误。没有计算。
我收到以下错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\BW345KB\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\BW345KB\OneDrive - EY\Documents\My Work\My Projects\JULES PROVMAT IMPAIRMENT App\prov_matrix.py", line 199, in prov_result
cond_tw = eval(tw)
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
错误不明可以参考图片
dd = self.dd.get()
tot = self.tot.get()
on = self.one.get()
tt = self.thirty.get()
sx = self.sixty.get()
nn = self.ninety.get()
tw = self.twenty.get()
cur = self.curr.get()
#for conditions
cond_dd = eval(dd)
cond_tw = eval(tw)
if (cond_tw > 0 and cond_dd == 90):
messagebox.showwarning("Error", "Your Definition of Default Is " + dd + " Days Past Due")
else:
up1 = eval(tot) - eval(cur) #paid total - current
up2 = up1 - eval(on) #paid current - 1-30
up3 = up2 - eval(tt) #paid 1-30 - 31-60
up4 = up3 - eval(sx) #paid 31-60 - 61-90
up5 = up4 - eval(nn) #written off
根据我对提供的资源中的问题的理解,缺少完整的代码,正如@jasonharper 所说,没有 minimal reproducible example,以下似乎是一个可能的解决方案。
正如@jasonharper 指出的那样,tw 似乎是一个空字符串,因此当通过 eval 函数传递时 python 抛出一个 EOF(文件结束)异常。
我认为这里需要尝试语句并捕获异常,如果捕获到异常,我们会提示用户输入的字符串为空,即 -: ''.
像这样-:
dd = self.dd.get()
tot = self.tot.get()
on = self.one.get()
tt = self.thirty.get()
sx = self.sixty.get()
nn = self.ninety.get()
tw = self.twenty.get()
cur = self.curr.get()
#for conditions
try :
cond_dd = eval(dd)
cond_tw = eval(tw)
except Exception :
messagebox.showwarning("Error", "You have provided no condition for either dd or tw.")
if (cond_tw > 0 and cond_dd == 90):
messagebox.showwarning("Error", "Your Definition of Default Is " + dd + " Days Past Due")
else:
up1 = eval(tot) - eval(cur) #paid total - current
up2 = up1 - eval(on) #paid current - 1-30
up3 = up2 - eval(tt) #paid 1-30 - 31-60
up4 = up3 - eval(sx) #paid 31-60 - 61-90
up5 = up4 - eval(nn) #written off