擅长:python、mysql、java
<p>这里有一个使用<code>abs</code>和for循环的非常简单的方法:我添加了一些注释来帮助遵循代码</p>
<pre><code>data = [1.7, -0.2, 1.5, 2.3, 1.8, -4.5, 1.6, -3.9]
s, idx = 0, 0 # s will hold the running sum, idx will hold the starting index for each iteration
for i, num in enumerate(data):
s += num # adding to the sum
if abs(s) >= 5: #checking if sum is >= 5 or <= -5
print((idx, i), s) # prints the range the sum was found and the sum
s, idx = 0, i + 1 # resets the index and sum
</code></pre>
<p>打印:</p>
^{pr2}$
<p>我建议使用列表并按索引访问,而不是使用<code>x</code>和{<cd3>}。这可以使用上面的方法通过附加到列表而不是打印来完成。在</p>
<pre><code>data = [1.7, -0.2, 1.5, 2.3, 1.8, -4.5, 1.6, -3.9]
s, sums = 0, []
for num in data:
s += num
if abs(s) >= 5:
sums.append(s)
s = 0
</code></pre>
<p>下面列出一个列表:</p>
<pre><code>[5.3, -5.0]
</code></pre>
<p>当然,您可以使用枚举方法在原始代码块中包括索引甚至值,但我假设这正是您要查找的。在</p>