while data == 1 运行 动作一次

while data == 1 run action one time

从 api,我收到一个数据。它returns 有两个值:1 和-1。 我每秒接收一个数据,并且是 1 或 -1 的系列。

我想要的是,当数据变为 1 时,您只执行一次操作,而当它变为 -1 时,始终执行一次相同的操作。

我的问题是目前我不能让动作只发生一次。只要 data == 1 或 data == -1

就会重复该操作

此外,即使我没有脱离循环,我也需要代码继续执行。

感谢您的帮助

signal_result = APIDATA

while signal_result == 1:
      self.action(signal_result)
                
while signal_result == -1:
      self.action(signal_result)

只需跟踪前一个值,如果不同,执行操作:

# at the very start, initialise 
previous_result = 0  # Some value that is different from 1 or -1

# ...
# ...

# When a signal is received:
    global previous_result
    signal_result = APIDATA
    if signal_result != previous_result:
        previous_result = signal_result
        self.action(signal_result)