У меня есть следующая программа, которая работает в течение 400 секунд, а во всем цикле while она итерации по массиву временных кодов. Когда прошедшее время выполнения программы совпадает с одним из временных кодов, оно что-то делает. Проблема заключается в том, что он выполняет итерацию по массиву временных кодов много раз в секунду, и в настоящее время он «делает вещь» несколько раз во время второй, что условие выполнено - я только хочу, чтобы это однажды делалось ... как я могу сделай это?остановить проверку, если оператор после выполнения условия
#!/usr/bin/env python3
import time
def get_sec(s):
l = s.split(':')
return int(l[0]) * 60 + int(l[1])
def sec_trim(s):
l = s.split('.')
return int(l[0])
times = [
'00:07',
'00:34',
'00:59',
'01:29',
'02:22',
'02:50',
'03:05',
'03:21',
'04:07',
'04:24',
'04:58',
'05:27',
'06:03',
'06:22',
'06:36',
'06:58',
'07:07',
'07:24',
'07:45',
'08:40',
'08:51',
'09:17',
'09:31',
'09:43',
'10:01',
'10:10',
'10:30',
'11:29',
'11:42',
'12:02',
'12:14',
'12:26',
'12:51',
'13:47',
'13:58',
'14:09',
'14:33'
]
start_time = time.time()
elapsed_time = time.time() - start_time
while elapsed_time < 400:
for item in times:
elapsed_time = time.time() - start_time
if get_sec(item) == sec_trim(str(elapsed_time)):
print item
# print sec_trim(str(elapsed_time))
Знаете ли вы о 'break' и' continue'? https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops – leekaiinthesky