1

我有一个 while 循环来检查变量 Accessory2 的上升沿。我的代码如下:

            # Check for rising edge of ACC2
    while (currentTime.Value - StartTime) < TimeOutValue:
        if Accessory2.Value == 1:
            Acc2StartTime = currentTime.Value
            print rttPrefix + "ACC2 output to ON"
            break
        yield None
    else:
        print rttPrefix + "No ACC2 output"
        DynamicFlag.Value = -2

但是,当变量 Accessory2 上升时,break 条件停止 if 语句,但 else 语句也被执行。知道为什么吗?

输出如下:

*RTT:* ACC2 output to ON
*RTT:* No ACC2 output
4

2 回答 2

2

也许你只是多次执行(或继续)while循环,第一次执行打印你的第一行,随后的执行打印第二行。

于 2013-01-11T15:52:37.827 回答
-2

您的 else 语句与您的 while 循环在同一级别缩进,因此不在其中。

于 2013-01-11T15:19:01.397 回答