0

私の現在のifステートメントは、私が望むように機能していません。特定の時間に変数を変更する必要がありますが、変数は変更されていないようです...

import random
import datetime
from sched import scheduler
from time import time, sleep, strftime

s = scheduler(time, sleep)
random.seed()

def run_periodically(start, end, interval, func):
    event_time = start
    while event_time < end:
        s.enterabs(event_time, 0, func, ())
        event_time += interval + random.randrange(-5, 10)
    s.run()

clearscreen = "false"

def clear():
    global clearscreen
    currenttime = strftime('%H:%M:%S')
    print currenttime


## When currenttime is in range, it should change clearscreen from false to true, but it doesn't
    if currenttime > "00:45:00" and currenttime < "00:46:00":
        print "Time Range 1 Working"
        if clearscreen == "false":
            print "Clear screen is set to false"
            clearscreen == "true"

## Same here, when currenttime is in range it should change clearscreen from true to false.
    if currenttime > "00:46:00" and currenttime < "00:47:00":
        print "Time Range 2 Working"
        if clearscreen == "true":
            print "clearscreen is set to true"
            clearscreen == "false"
            print "Cleared Screen"

getData()

run_periodically(time()+5, time()+1000000, 10, clear)

UTC時間の使用について言及する必要もありません。

ありがとう - ハイフレックス

4

1 に答える 1

6

clearscreen == "true"を 2 つ使用=しても の値は変わりませんclearscreen。代わりに、ブロック内 (つまり、行自体ではなく) にclearscreen = "true"(後でclearscreen = "false")書き込む必要があります。ifif

于 2013-06-19T23:58:59.033 に答える