Продолжайте ссылаться на текущее время в Python - PullRequest
0 голосов
/ 24 сентября 2018

Я бы хотел, чтобы моя программа ссылалась на текущее время в Python.Но моя программа продолжает печатать и ссылаться на метку времени.Я использую Python3.5.3.

import time

timenow = time.strftime("%X")

awake = "06:00:00" # turn on the lights at 6am
sleep = "22:00:00" # turn off the lights at 10pm

while True:
    print (timenow) # print the current time
    if awake <= timenow:
        print ("Lights On")
    elif timenow >= sleep:
        print ("Lights Off")

My current output is...

21:55:46
Lights On
21:55:46
Lights On
21:55:46
Lights On

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Это также может сработать.Если вы ссылаетесь на время как часть даты, которая может быть представлена ​​как int.Я думаю, что лучше сравнивать числа в этом случае, чем строки (как в вашем примере).

import datetime


on = 6
off = 22


while True:
    ctime = datetime.datetime.now()
    status = 'Lights On' if on < ctime.hour < off else 'Lights Off'
    print('{}: {}'.format(ctime.strftime('%X'), status))
0 голосов
/ 24 сентября 2018

Я думаю, вам просто нужно переместить 1 строку в цикл while:

import time

awake = "06:00:00" # turn on the lights at 6am
sleep = "22:00:00" # turn off the lights at 10pm

while True:
    timenow = time.strftime("%X") #moved this line into the while loop
    print (timenow) # print the current time
    if awake <= timenow:
        print ("Lights On")
    elif timenow >= sleep:
        print ("Lights Off")

Вывод должен выглядеть следующим образом:

Lights On
08:50:22
Lights On
08:50:23
Lights On
08:50:24

В вопросе timenow получаетустановить и никогда не обновляется.Так что перенесите это в цикл while, чтобы он создавался каждый раз.Точно так же, как хорошая практика программирования, вы также можете добавить паузу, чтобы процессор не забивал цикл.Вы можете поместить это в конец цикла while, и он будет ждать 1 секунду перед повторным циклом:

....
elif timenow >= sleep:
    print ("Lights Off")
time.sleep(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...