【发布时间】:2018-12-08 04:49:04
【问题描述】:
代码:
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")
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)
break
if __name__ == '__main__':
calc(data)
“数据”中的前 2 个元素是用户输入的小时和分钟。该代码应采用用户输入的值,即此处的数据。并应检查当前时间并应打印 i[2],i[3],i[4],如代码所示。
1)我只想将这些值打印一次。但是,它会持续检查并打印整整 1 分钟的值。 break 语句不起作用。
2)另外,是否有可能以某种方式检查而不打印无?
【问题讨论】:
-
如果当前时间是上午 10:30 并且用户输入时间为 - data = [('10','31','fan is on','AC is on',none )]。然后,我们需要检查直到用户时间 == 当前时间并打印 'fan is on','AC is on',none。
-
效果很好。谢谢。顺便说一句,我们可以不打印none吗?
标签: python python-3.x list tuples python-datetime