2015-02-18 9 views
-2

Я пытаюсь создать секундомер, который запускается и останавливается через пользователя, нажимая клавишу ввода. Однажды, чтобы начать и снова остановиться. Начало работает отлично, но секция остановки не работает. Я попытался создать переменную с именем 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() 
+1

Ваш 'whiles' функция не имеет смысла; почему вы называете 'Watch' дважды? Кроме того, у вас есть концептуальная проблема: когда вы называете 'Watch', вы навсегда застряли в цикле' while' внутри функции и всего кода после того, как он никогда не был достигнут. Вам нужно запустить код секундомера в отдельном потоке, чтобы ваш основной поток не блокировался; и вам нужно создать объект 'Watch', который вы можете контролировать. Поскольку потоки и классы - это огромные темы, я проголосовал за то, чтобы закрыть вопрос как слишком широкий. Я бы посоветовал вам сначала прочитать несколько руководств по потокам, официальное - хорошее начало. – l4mpi

ответ

0

Возможно, все, что вам нужно что-то простое, как:

import time 

input('Start') 
start = time.time() 
input('Stop') 
end = time.time() 

print('{} seconds elapsed'.format(end-start)) 
0

Если, вероятно, использовать функцию времени вместо

def Watch(): 
Смежные вопросы