使用python3,我想每10秒运行一次函数。但只有当变量仍然“打开”时,该函数才会再次运行。我正在使用random.random函数随机模拟开/关。如果random.random的值小于0.5,则变量y
打开,如果y
大于0.5则变为off。使用threading.timer我正在设置每10秒运行一次。为简单起见,我只是在函数体中放入print("x")
。
import threading
import random
def machine_on():
threading.Timer(10.0, machine_on).start() #called every 10 seconds
print("x")
y=0
if y < 0.5:
machine_on()
y = random.random()
else:
sys.exit()
运行这些代码后,我的电脑进入无限循环。你知道我的代码有什么问题吗?我该如何解决这个问题?
import random
import time
def machine_on():
print("x")
y=0
while True:
if y < 0.5:
machine_on()
y = random.random()
print(y)
time.sleep(10)
else:
break
你可以在线程中做到这一点
def print_x():
global y
for i in xrange(1000000): # or use while True
if y > 0.5:
print('x')
time.sleep(10)