Python:开始和结束一个带有时间差的while循环



我试图用一个时差开始和结束while循环。首先,我用date time.now获取当前时间在我看来,我想创造一个时差。这应该是10秒。如果秒数过期且当前时间等于前一个时间(当前时间+ 10s),则该函数应该给出False。否则它会给我一个真正的回报。在此之后,我将设置"时代"。变量设置为True,以便开始while循环。在while循环中,我开始使用&;fkt_zeit &;来改变&;zeit &;条件在10秒后循环为False。这就是我的计划,但行不通。"Zeit"变量永远不会更改为False。你能帮我找出我的错误吗?对不起,我的英语不好…

akt_zeit = datetime.now()
timedelta = timedelta(seconds=10)
def fkt_Zeit(akt_zeit, timedelta):
off_time = akt_zeit + timedelta
while(True):
if(akt_zeit < off_time):
return True
else:
return False

Zeit = True    
while(Zeit == True):
Zeit = fkt_Zeit(akt_zeit, timedelta)

在此代码中

while(Zeit == True):
Zeit = fkt_Zeit(akt_zeit, timedelta)

调用函数fkt_zeit,但注意时间增量是在该函数中计算的。这意味着每次调用fkt_zeit时,都会重置fkt_zeit返回false所需的时间。这就是为什么你的函数永远不会返回false。我建议将off_time计算移到fkt_zeit函数之外。例如:

def fkt_Zeit(akt_zeit, timedelta):
while(True):
if(akt_zeit < off_time):
return True
else:
return False

Zeit = True     
off_time = akt_zeit + timedelta # so the off_time doesn't keep resetting
while(Zeit == True):
Zeit = fkt_Zeit(akt_zeit, timedelta)

希望对你有帮助。

最新更新