问题遇到的现象和发生背景
原始代码
def run():
a = input()
b = input()
c = input()
d = input()
condition1 = a>b and c<d
condition2 = a<b and c>d
if condition1:
print('condition1')
elif condition2:
print('conditon2')
else:
print('keep')
schedule.every(1).minutes.do(run)
我想要达到的结果
该代码中a,b数据每秒钟发生变化,c,d每十分钟发生变化,软件每一分钟重复执行。十分钟结束后才能确定实际condition是1还是2.
想法一:本人想运用flag1让条件多次满足时不执行,也就是说在十分钟内会多次出现conditon1或者时conditon2的情况,当发生这种情况的时候只在第一次出现的时候执行,其他全部是keep,除非满足另一个一个条件。但是在尝试过程中一直失败。
想法二:在想法一满足的基础上想再加一个历史条件的检测功能,即第一次条件发生后存在60s的间隙,数据a,b在实时变化,有可能在程序第二次运行的时候condition1或2已经信号消失也就是输出keep,应该回到初始状态。本人不清楚如操作来达到这个效果。
我第一个想法想要的结果是类似于这样的,随时间的变化出现以下结果condition1(执行),conditon1(不执行而是print ok之后同理),keep(两个条件都不符合),),condition1(不执行),condition1(不执行),conditon1(不执行),condition2(执行),codition2(不执行),coditon1(执行)
我的历史检测是指,这里存在两个keep执行的条件即,a>b,c>d或a<b,c<d,当在condtion1出现的上一个ok如果是a>b,c>d,出现的下一个keep(并非由于第一个想法导致的结果即a>b,c>d)那么就回到执行conditon1之前的状态也就是conditon2.
该系统只存在两个状态conditon1 和condition2,在想法一未实现时keep指维持当前状态
不知道这样有没有解释清楚
希望能够给出思路以及源码方便学习,如果对我的表述有不理解,我可以再详细讲述