Не могу понять, как сделать код при котором выдает сообщение на пустое поле

При нажатии на кнопку, должны посчитаться: вклад, проценты, годы. Но если пользователь нажал на кнопку не заполнив все или что-то то в консоль выводится сообщение "Поля не заполнены!". Помогите увидеть ошибку! Заранее спасибо!

import tkinter
from tkinter import *
def calcSum():
    sum_Val = int(sum_.get("1.0",END))
    percentVal = int(percent.get("1.0",END))
    yearVal = int(year.get("1.0",END))
    i = 0
    while i < yearVal:
        sum_Val = sum_Val+sum_Val*percentVal/100
        i+=1
        labelResult['text'] = str(sum_Val)
    if sum_Val !="0" and percentVal !="0" and yearVal !="0": #Если в переменных ничего не написано, то в консоль должно вывести сообщение
        print('Заполните поля!')
    
win = Tk()
win.title("Счетчик")
win.geometry("400x200")
labelSum = Label(win,text="Введите сумму: ")
labelSum.grid(row=0,column=0)
labelSum = Label(win,text="sum")
labelSum.grid(row=0,column=2,sticky='w')

sum_ = Text(win,width=10,height=1)
sum_.grid(row=0,column=1)

labelPercent = Label(win,text="Введите проценты: ")
labelPercent.grid(row=1,column=0)
labelPercent = Label(win,text="%")
labelPercent.grid(row=1,column=2,sticky='w')
percent = Text(win,width=10,height=1)
percent.grid(row=1,column=1)

labelYear = Label(win,text="Введите кол-во лет: ")
labelYear.grid(row=2,column=0)
labelYear = Label(win,text="year")
labelYear.grid(row=2,column=2,sticky='w')
year = Text(win,width=10,height=1)
year.grid(row=2,column=1)

button = Button(win,text="Посчитать сумму",command=calcSum)
button.grid(row=3,column=0,columnspan=2)
labelResult = Label(win,text="",font='sans 20')
labelResult.grid(row=4,column=0,columnspan=2)

win.mainloop()

Ответы (2 шт):

Автор решения: Serg Bocharov

Присвойте полям значения по умолчанию, которые проверяете:

... # Ваш код
sum_.insert(1.0, "0")
percent.insert(1.0, "0")
year.insert(1.0, "0")

win.mainloop()
→ Ссылка
Автор решения: n1tr0xs

Здесь вам следует использовать блок try/except:

def calcSum():
    try: # мы пытаемся сделать числа
        sum_Val = int(sum_.get("1.0",END))
        percentVal = int(percent.get("1.0",END))
        yearVal = int(year.get("1.0",END))
    except ValueError: # если не получается, то что-то неправльно заполнено
        print('Поля не заполнены или заполнены неверно!')
    else: # если получается, то считаем
        # в данном случае цикл for использовать предпочтительнее
        for i in range(yearVal):
            sum_Val = sum_Val+sum_Val*percentVal/100
            labelResult['text'] = str(sum_Val)
→ Ссылка