擅长:python、mysql、java
<p>您的代码失败的原因是因为您假设<strong>对于每一个<code>6</code>,后面也会有一个<code>7</code>,而事实可能并非如此。你知道吗</p>
<p>发生这种情况时,您的代码可以:</p>
<ul>
<li>当<strong>no</strong><code>7</code>存在时引发<code>ValueError</code>(请尝试<code>[1, 6, 2]</code>),或</li>
<li>如果<code>7</code>确实存在,但在<code>6</code>之前</strong>,则会超时(切片无法从<code>list</code>中删除任何内容,但无论如何您会反复尝试..)(请尝试使用<code>[1, 7, 6, 2]</code>)</li>
</ul>
<p>不如这样吧:</p>
<pre><code>def sum67(nums):
stop = False
count = 0
for number in nums:
if number == 6:
stop = True
elif stop and number == 7:
stop = False
else:
if not stop:
count += number
return count
</code></pre>
<p>您只需继续添加术语,除非遇到<code>6</code>。如果这样做,则停止添加,直到找到<code>7</code>。你知道吗</p>
<p>请注意,这肯定是可以改进的。这是一种快速而肮脏的解决方案,尽管如此。你知道吗</p>