每秒一次,数字可以上下移动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)
我发现这可以改善或纠正。
答案 0 :(得分:0)
我可以看到您的代码存在一些问题:
has_initially_increased
从未在else分支(第一个if / else级别)中设置为True
。由于has_initially_increased
初始化为False
,因此if语句中的代码块将永远不会被执行。
如果您确定了第一点,如果current_number
低于starting_number
,这将终止循环,但这并不意味着您的条件得到满足(达到给定的峰值并然后降低到最低值50)。那么,为什么要在这里休息?
另一个中断条件是最高峰与当前值之差为50,但无法检查您是否达到了预期的峰。
最后,您的count
变量的用途是什么?似乎根本没有使用。