在python中使用涉及时间的if语句

在python中使用涉及时间的if语句,python,python-2.7,Python,Python 2.7,因此,我一直在尝试在某个特定时间运行if语句,并尝试以下操作: import datetime try: while True: if(datetime.datetime.now().time() == (6, 20, 0, 0)): print("It's 6:20!") except : pass 但是6点20分什么也没发生。。为什么以及如何修复此问题?您正在调用的函数不会返回元组;它返回一个datetime.time实例。而且,在6

因此,我一直在尝试在某个特定时间运行if语句,并尝试以下操作:

import datetime
try:
    while True:
        if(datetime.datetime.now().time() == (6, 20, 0, 0)):
            print("It's 6:20!")
except :
    pass

但是6点20分什么也没发生。。为什么以及如何修复此问题?

您正在调用的函数不会返回元组;它返回一个
datetime.time
实例。而且,在6:20的时候调用函数的几率非常小

success = False
while True:
    now = datetime.datetime.now().time()
    if now.hour == 6 and now.minute == 20:
        success = True
        print("It's 6:20!")
更有可能的是,一旦
success
成为现实,您只想打破循环,这意味着您的代码看起来更像

while True:
    now = ...
    if now.hour == 6 ...:
        print("It's 6:20!")
        break

如果我加上“和1>=now.second>=0”那行吗?
和t.second==0
就足够了。一个单独的字段,
t.microsecod
,将分数秒存储为整数微秒。因此,要处理在6:20准确运行的小机会,我应该怎么做?我希望它只在if下运行一次代码,但是当我进行测试时,它会完全跳过它,或者用“it's 6:20!”向我发送垃圾邮件。您需要添加一个显式标志,该标志在第一次
now
时会返回
6:20:00
期间出现的值。