Почему зависает while? Python
Я делаю таймер. Переменные: eskolo - количество минут(tkinter.Entry), eskolt - количество секунд(tkinter.Entry). Функция, вызывающая проблему:
def cvv():
eo = int(eskolo.get())
et = int(eskolt.get())
sl = int(eo * 60 + et)
while sl > 0:
pass
if sl == 0:
lo.configure(text="Таймер прошел")
Ответы (1 шт):
Автор решения: Глеб
→ Ссылка
Во-первых, в питоне имеют значение отступы, а у вас они явно нарушены. Нужно так:
def cvv():
eo = int(eskolo.get())
et = int(eskolt.get())
sl = int(eo * 60 + et)
while sl > 0:
pass
if sl == 0:
lo.configure(text="Таймер прошел")
Во-вторых, переменная sl в цикле никак не изменяется, условие sl > 0 всегда будет истинным и цикл будет выполняться вечно.
Таким образом, правильный код:
def cvv():
eo = int(eskolo.get())
et = int(eskolt.get())
sl = int(eo * 60 + et)
while sl > 0:
sl -= 1
if sl == 0:
lo.configure(text="Таймер прошел")
break