我用Python3Tkinter和它';他给了我一个错误
它显示了这个错误我用Python3Tkinter和它';他给了我一个错误,python,tkinter,Python,Tkinter,它显示了这个错误 total = sum(int(e.get()) for e in (feet_entry1, feet_entry2, feet_entry3)) def callback(): global total l.configure(text= "The output MV is %s" % total, font='none 12 bold') 调用.get()时,必须至少有一个feet\u entry1,feet\u entry2,feet\u entry3
total = sum(int(e.get()) for e in (feet_entry1, feet_entry2, feet_entry3))
def callback():
global total
l.configure(text= "The output MV is %s" % total, font='none 12 bold')
调用
.get()
时,必须至少有一个feet\u entry1
,feet\u entry2
,feet\u entry3
返回'
如果在交互式提示中尝试,则会出现相同的错误:
total = sum(int(e.get()) for e in (feet_entry1, feet_entry2, feet_entry3))
ValueError: invalid literal for int() with base 10: ''
您可以通过过滤掉空值来修复它:
>>> int('')
Traceback (most recent call last):
ValueError: invalid literal for int() with base 10: ''
if e.get()的将该值转换为布尔值。空字符串的计算结果为False
,因此将忽略它
有关以下内容,请参阅文档:
调用.get()
时,必须至少有一个feet\u entry1
,feet\u entry2
,feet\u entry3
返回'
。如果您尝试在交互式提示>>>int(“”)
中执行此操作,您将得到相同的错误。此标题应使具有相同问题的其他用户能够找到您的问题。请将标题编辑为更有意义的标题
sum(int(e.get()) for e in (feet_entry1, feet_entry2, feet_entry3)
if e.get())
>>> vec = [-4, -2, 0, 2, 4]
>>> # filter the list to exclude negative numbers
>>> [x for x in vec if x >= 0]
[0, 2, 4]