找出数字之间的差距

2024-09-25 08:28:45 发布

您现在位置: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)

我发现这是可以改进或纠正的。你知道吗


Tags: selfapifalsenumbergetifcount数字
1条回答
网友
1楼 · 发布于 2024-09-25 08:28:45

我发现你的代码有一些问题:

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

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

  3. 中断的另一个条件是最高峰值和当前值之间的差值为50,但没有检查是否达到预期峰值。

最后,您的count变量的用途是什么?这个好像根本没用。你知道吗

相关问题 更多 >