Как разорвать цикл while True?
Не получается разорвать цикл while True в python. Реализовал простенький таймер для основного проекта, только проблема в том, что после выполнения программа не останавливается.
Вот код:
from time import *
sets = int(input("Введіть кількість сетів = "))
exr = int(input("Введіть кількість вправ ="))
work_time = int(input("Введіть час роботи = "))
rest_time = int(input("Введіть час відпочинку = "))
while True:
while exr != 0:
while work_time != 0:
sleep(1)
work_time -= 1
print("До перерви залишилось ", work_time)
while rest_time != 0:
sleep(1)
rest_time -= 1
print("Час до наступої вправи", rest_time)
- Читал про операторы циклов, но на практике они не помогают
- Смотрел подобные вопросы на стаке, но не помогло
Я не являюсь опытным программистом, даже джуном, может можно реализовать данную программу без while True, подскажите как? Программа является таймером для тренировок, нужно чтобы код выполнился и программа остановилась. Как я выяснил цикл не прерывается в этом основная проблема.
Ответы (3 шт):
Можно обернуть весь while True в функцию, и для прерывания использовать return.
Не очень понятно, что вы хотите сделать, но судя по тому, что тут имеется, ни цикл while True, ни цикл while(exr!=0) ни переменные sets и exr тут вообще не требуются:
from time import *
work_time = int(input("Введіть час роботи = "))
rest_time = int(input("Введіть час відпочинку = "))
while (work_time != 0):
sleep(1)
work_time -= 1
print("До перерви залишилось ", work_time)
while (rest_time != 0):
sleep(1)
rest_time -= 1
print("Час до наступої вправи", rest_time)
PS. import * лучше не делать. Если у вас будет много модулей, то потом запутаетесь, откуда какая функция; а если в разных модулях будут функции с одинаковыми именами, то функция из более позднего импорта перепишет предыдущую. В данном случае лучше просто from time import sleep, если уж вам так не хочется писать time.sleep(1).
Как вариант можно создать переменную типа Boolean и задать ей изначальное значение True. При завершении вашего таймера можно в цикле поменять эту переменную на False и цикл остановится
Пример:
work = True
while work:
# Тут делаем таймер
# И после того, как он закончился
work = False