我不知道这段代码有什么问题?

时间:2011-12-05 04:58:50

标签: python

  

可能重复:
  I'm new to python, I can't tell if this will work or not

import time
from sys import stdout
varthing = 1
while varthing == 1:
    time.sleep(1)
    checker = time.strftime("\r%b, %d %H:%M:%S", time.localtime())
    print checker,
    stdout.flush()
    if checker == "Dec, 25 00:00:00" :
        print "It's Christmas"
        raw_input("Enter anything to close\n")
        varthing = 0

我没有看到任何错误。这是圣诞节时通知你的时钟。

2 个答案:

答案 0 :(得分:5)

  • 您的strftime格式以\r开头。为什么?您在if语句中测试的字符串将永远不会匹配,因为它不以\r开头。

  • time.sleep(1)无法保证只睡一秒钟。它可能会睡得更久,你会错过checker与你正在测试的字符串相匹配的一秒窗口。

答案 1 :(得分:0)

如果你不需要每秒打印一次,这就可以了:

import datetime, time
target_date = datetime.datetime(2011, 12, 25)
time_left = target_date - datetime.datetime.now()
time.sleep(time_left.total_seconds())
print "It's Christmas"