Я сделал несколько изменений в коде.
Я не знаю, почему вы используете While = True.Из-за чего это НЕ выходит из цикла.Поэтому я удалил его
Только что добавил оператор else для проверки, вы можете удалить его
import datetime
data = [('09', '55', None, 'AC is on', None), ('10', '00',None, 'AC is on', None),('10', '13','fan is on', 'AC is on', 'light is on')]
def calc(data):
print(data) #prints the whole table
# while True:
h=datetime.datetime.today().strftime("%H")
print(h)
mi=datetime.datetime.today().strftime("%M")
print(mi)
# z=[(i[2],i[3],i[4]) for i in data if i[0] == h and i[1]==mi]
for i in data:
if i[0] == h and i[1]==mi:
print (i[2],i[3],i[4])
else:
print ("It does NOT match")
# sleep(60)
break
if __name__ == '__main__':
calc(data)
EDITED (работает сейчас):
import datetime
data = [('09', '55', None, 'AC is on', None), ('10', '00',None, 'AC is on', None),('10', '52','fan is on', 'AC is on', None)]
def calc(data):
print(data) #prints the whole table
while True:
h=datetime.datetime.today().strftime("%H")
mi=datetime.datetime.today().strftime("%M")
# z=[(i[2],i[3],i[4]) for i in data if i[0] == h and i[1]==mi]
for i in data:
if i[0] == h and i[1]==mi:
print (i[2],i[3],i[4])
# sleep(60)
exit()
if __name__ == '__main__':
calc(data)