python找到数字之间的差距

时间:2019-10-12 21:27:29

标签: python

每秒一次,数字可以上下移动1,这来自api。

比方说,数字从0开始,一直到100。 然后,当它逐渐减小到50时,我将停止该程序。

因此,每当数字从任何起始数字开始先增加并且在某个数字处达到峰值,然后后来发现它减少-50时,就像上面的示例(100-50 = 50)一样,我必须停止它。我试图通过代码实现此功能,但需要一些帮助。

starting_number = self.api.get_current_number()
current_peak_number = 0
count = 0
has_initially_increased = False

While True:
    current_number = self.api.get_current_number()

    if has_initially_increased is False:
        if current_number > starting_number:
            current_peak_number = current_number
            has_initially_increased = True
            pass
        else:
            break
    else:
        if current_peak_number <= current_number:
            current_peak_number = current_number
        else:
            gap = current_peak - current_number
            if gap == 50:
                break

    count += 1
    time.sleep(1)

我发现这可以改善或纠正。

1 个答案:

答案 0 :(得分:0)

我可以看到您的代码存在一些问题:

  1. has_initially_increased从未在else分支(第一个if / else级别)中设置为True。由于has_initially_increased初始化为False,因此if语句中的代码块将永远不会被执行。

  2. 如果您确定了第一点,如果current_number低于starting_number,这将终止循环,但这并不意味着您的条件得到满足(达到给定的峰值并然后降低到最低值50)。那么,为什么要在这里休息?

  3. 另一个中断条件是最高峰与当前值之差为50,但无法检查您是否达到了预期的峰。

最后,您的count变量的用途是什么?似乎根本没有使用。