好汉们给看看,使用定时器后程序不对头
直接上代码:def DingShi():
import time
while True:
time_now = time.strftime("%H:%M:%S", time.localtime())
if time_now == "16:19:01": #此处设置每天定时的时间
canshu1()
time.sleep(2) # 因为以秒定时,所以暂停2秒,使之不会在1秒内执行多次
def canshu1():
print("参数一")
return 3
def canshu2(a):
print("参数二")
b=2+a
print(b)
DingShi()
a=canshu1()
canshu2(a)
我觉得应该打印出5,实际上只打印了”参数一“
英雄们教教俺! DingShi函数是个死循环,他没有退出
加个break
def DingShi():
import time
while True:
time_now = time.strftime("%H:%M:%S", time.localtime())
if time_now == "16:19:01": #此处设置每天定时的时间
canshu1()
break # 因为以秒定时,所以暂停2秒,使之不会在1秒内执行多次
def canshu1():
print("参数一")
return 3
def canshu2(a):
print("参数二")
b=2+a
print(b)
DingShi()
a=canshu1()
canshu2(a)
逃兵 发表于 2021-6-23 16:30
DingShi函数是个死循环,他没有退出
加个break
大侠,严重感谢啊! 逃兵 发表于 2021-6-23 16:30
DingShi函数是个死循环,他没有退出
加个break
大侠,5是打印出来了。但是我发现canshu1()被执行了2次,这有办法吗? 在Dingshi函数中,canshu1()执行了第一次
在a=canshu1()中,canshu1()执行了第二次
你的代码逻辑本身就执行了两次
要只执行一次的话可以这么改
def DingShi():
global a
import time
while True:
time_now = time.strftime("%H:%M:%S", time.localtime())
if time_now == "16:19:01": #此处设置每天定时的时间
a = canshu1()
break # 因为以秒定时,所以暂停2秒,使之不会在1秒内执行多次
def canshu1():
print("参数一")
return 3
def canshu2(a):
print("参数二")
b=2+a
print(b)
DingShi()
canshu2(a)
感谢大侠,俺是个初学者,再次感谢大侠的热情帮助。{:10_257:}
页:
[1]