我用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]