Python变量和循环

2024-10-02 04:20:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在想python时遇到了一些困难,我确信这是一个简单的东西,但我就是不能让它工作。你知道吗

我要做的是用默认变量启动脚本。一旦它被处理,然后进入睡眠一个设定的时间量-然后通过脚本保持任何变量的更新(如果有的话)循环回来

我可以让它与循环一起工作,我可以让我的计数增加,但是我不能让我的日期时间变量更新到循环上的当前时间,因为它保存了脚本第一次运行时的时间。你知道吗

这里有一个基本代码,我一直在玩,试图与我的主代码,但我不能得到基本代码的工作方式,我想要的太多

import datetime
import time

date_time = datetime.datetime.now()
redsent_time = '00:00:00.00'
f = '%H:%M:%S.%f'

tred = redsent_time
tred2 = date_time.time()
tred3 = str(tred2) #converts tred2 into a sting value instead of a command
d1 = datetime.datetime.strptime(tred, f)
d2 = datetime.datetime.strptime(tred3, f)

def exec_code():
    counter = 0
    while True:

     if ((d2-d1).total_seconds()) >= 1:
        counter += 1
        print((d2-d1).total_seconds())
        print counter
        time.sleep(10)

while exec_code(): pass

结果是这样的

37432.657
1
37432.657
2
37432.657
3
37432.657
4
37432.657
5

所以你可以看到,从午夜到我现在的时间差总是一样的,即使每过10秒。你知道吗


Tags: 代码import脚本datetimedatetimecounter时间
1条回答
网友
1楼 · 发布于 2024-10-02 04:20:08

您需要移动d2的赋值,以及它所依赖的所有变量,这些变量可能会在循环中发生变化。否则,您只需重复使用相同的d2值,因此当然会得到相同的时差。你知道吗

import datetime
import time

date_time = datetime.datetime.now()
redsent_time = '00:00:00.00'
f = '%H:%M:%S.%f'

tred = redsent_time
d1 = datetime.datetime.strptime(tred, f)

def exec_code():
    counter = 0
    while True:

     tred2 = date_time.time()
     tred3 = str(tred2) #converts tred2 into a sting value instead of a command
     d2 = datetime.datetime.strptime(tred3, f)

     if ((d2-d1).total_seconds()) >= 1:
        counter += 1
        print((d2-d1).total_seconds())
        print counter
        time.sleep(10)

exec_code()

相关问题 更多 >

    热门问题