KingXQu 2022-04-19 17:52 采纳率: 80%
浏览 227
已结题

【python】条件语句中如何实现多次重复满足条件不执行及历史条件检测

问题遇到的现象和发生背景

原始代码

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指维持当前状态
不知道这样有没有解释清楚
希望能够给出思路以及源码方便学习,如果对我的表述有不理解,我可以再详细讲述

  • 写回答

7条回答 默认 最新

  • 溪风沐雪 2022-04-19 23:03
    关注

    先不说实现的问题,我们先来理一下楼主的需求:
    1、有4个数据,每两个成一对,一对a,b实时变化(每秒),一对c,d变化周期较长(10分钟)
    2、有两个操作action1,action2,是在根据两对数据比较结果condition1,condition2来判断是否执行的,condition1,condition2不会同时满足
    3、两对数据比较结果大致分为4类,其中两类对应两个动作,另外两类(非condition1,非condition2)不执行任何操作
    4、两个操作不连续重复执行,允许间隔执行
    5、有一个1分钟一次的循环来调用或者检查当前的运行状态
    那么,还有几个疑问:
    1、楼主给的代码应该是伪代码,abcd肯定不可能来自于输入,那么abcd数据来源是否可以直接驱动数据进行判断,也就是说现在的伪代码中,函数run是一分钟执行一次,那么期间ab更新了60轮,这60轮的数据是忽略了还是生效了,按照楼主的解释,需要生效的可能性比较大
    2、接上一条,如果ab每秒数据更新都生效了,那么条件的判断与动作的执行,每秒都在运行,那么1分钟一次的函数调用目的是什么,需要返回什么数据
    3、condition1执行action1,condition2执行action2,那么非condition1,非condition2导致的keep楼主到底想用来做什么,如果非condition2导致了keep,再次满足condition1时可以执行action1吗
    我捋了一下思路,有以上想法,欢迎楼主来探讨一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月22日
  • 修改了问题 4月19日
  • 创建了问题 4月19日

悬赏问题

  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊