如果状态发生变化,如何打印一次(无多个)?

时间:2016-05-13 07:08:44

标签: python if-statement

我有一个读取模拟数据的代码,我将其打印出来就像数字(ON,OFF)。当状态为ON时,我在屏幕上看到多个ON;当它关闭时,我在屏幕上看到多个OFF。阅读后,我会将数据传输到Google Spreadsheets。所以我只需要在状态发生变化时进行转移。我在这里骑了一些话题,但我没找到我想要的东西。如果我找到解决方案,我认为这对人们有帮助。

这是我的代码:

 while True:
  if sensor > 1.60:
   Status = 'ON'
  else:
   Status = 'OFF'

  print("Status : {}".format(Status))

我在 Status ='ON'下面尝试了 break 命令,但这不是一个好的解决方案。

3 个答案:

答案 0 :(得分:1)

试试吧?你需要在开头

初始化preStatus ='ON'
if sensor > 1.60:
   Status = 'ON'
else:
   Status = 'OFF'

if preStatus!=Status:
   print("Status : {}".format(Status))
   preStatus=Status

答案 1 :(得分:1)

根据您的要求,这是我的建议。它与其他人发布的内容非常相似,除了这里我已经明确地显示了初始化和循环。唯一缺少的是更新sensor的代码。

prev_Status = None

while True:
    if sensor > 1.60:
        Status = 'ON'
    else:
        Status = 'OFF'

    if Status != prev_Status:
        print("Status : {}".format(Status))
        prev_Status = Status

答案 2 :(得分:0)

每次检查输入时,只需添加另一个更新和引用的变量。

if sensor > 1.60 and previous_status == 'OFF:
  Status = 'ON'
  previous_status = 'ON'
elif sensor <= 1.60 and previous_status == 'ON':
  Status = 'OFF'
  previous_status = 'OFF'

希望这会有所帮助。