Я пытаюсь создать секундомер, который запускается и останавливается через пользователя, нажимая клавишу ввода. Однажды, чтобы начать и снова остановиться. Начало работает отлично, но секция остановки не работает. Я попытался создать переменную с именем stop
, который вот так:Остановка секундомеров
stop = input("stop?")
Но это все еще не работает.
import time
def Watch():
a = 0
hours = 0
while a < 1:
for minutes in range(0, 60):
for seconds in range(0, 60):
time.sleep(1)
print(hours,":", minutes,":", seconds)
hours = hours + 1
def whiles():
if start == "":
Watch()
if start == "":
return Watch()
def whiltr():
while Watch == True:
stop = input("Stop?")
#Ask the user to start/stop stopwatch
print ("To calculate your speed, we must first find out the time that you have taken to drive from sensor a to sensor b, consequetively for six drivers.")
start = input("Start?")
start = input("Stop")
whiles()
Ваш 'whiles' функция не имеет смысла; почему вы называете 'Watch' дважды? Кроме того, у вас есть концептуальная проблема: когда вы называете 'Watch', вы навсегда застряли в цикле' while' внутри функции и всего кода после того, как он никогда не был достигнут. Вам нужно запустить код секундомера в отдельном потоке, чтобы ваш основной поток не блокировался; и вам нужно создать объект 'Watch', который вы можете контролировать. Поскольку потоки и классы - это огромные темы, я проголосовал за то, чтобы закрыть вопрос как слишком широкий. Я бы посоветовал вам сначала прочитать несколько руководств по потокам, официальное - хорошее начало. – l4mpi