0

所以我想为学校解决这个问题。我试图每分钟打印一次 x,每十分钟打印一次。到目前为止,我无法每分钟都得到“打印 x”。有人可以帮忙吗?这是我的代码

import time;
inTime = float(input("type in how many second"))
oldTime = time.time()-inTime


print (time.time())

def tenMin(oldTime):
    newTime = time.time()
    if ((newTime - oldTime)>= 25):
        return True
    else:
        False

while (True):
        if (tenMin==True):
            print ("x")
            newTime = time.time()
            oldtime = time.time()
else:
    oldTime = time.time()
    continue
4

2 回答 2

0

你的第一个问题是

if (tenMin==True):

您将函数引用与布尔值进行比较,显然答案是 False。你必须传递一个参数

if (tenMIn(oldTime)):

...

于 2013-10-22T07:30:07.060 回答
0

首先,您的代码有一些问题:

  1. else: False- 这不是 python 中的真正语法。

  2. 如果你想要计时器,你为什么要求用户输入?

  3. 你有一个逻辑问题:

    inTime = float(input("type in how many second"))

    oldTime = time.time()-inTime

    time.time 是浮点数,但是用户真的知道在 UnixTime 中要打印什么吗?

我会建议一个简单的解决方案,它不是最好的,但它确实有效。它将每 1 分钟打印一次“x”,并在 10 分钟后打印“\n”(新行)

import time

def main():

    #both timers are at the same start point
    startTimerTen = time.time()
    startTimerMin = startTimerTen

    while True:
        getCurrentTime = time.time()
        if getCurrentTime - startTimerTen >= 600:
            # restart both parameters
            startTimerTen = getCurrentTime
            startTimerMin = getCurrentTime
            print "This in 10 min!\n"
        if getCurrentTime - startTimerMin >= 60:
            # restart only min parameter
            startTimerMin = getCurrentTime
            print "x"


   #end of main
if __name__ == "__main__":
    main()
于 2013-10-22T08:00:26.930 回答