回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试编写一个函数,它接受一个列表并对列表中的所有数字求和,只是它忽略了列表中以列表开始并扩展到7的部分,但在7之后继续求和。这是我的密码:</p>
<pre><code>def sum67(nums):
i = 0
sum = 0
while i < len(nums):
k = 0
if nums[i] != 0:
sum += nums[i]
i += 1
if nums[i] == 6:
for j in range(i + 1, len(nums)):
if nums[j] != 7:
k += 1
if nums[j] == 7:
k += 2
i += k
</code></pre>
<p>测试用例显示,6和7之前(包括7)的数字被忽略,而其他数字被添加到总和中,7之后的数字也被添加到总和中(正如预期的那样),但是由于某种原因,6之后的第一个7之后的任何7都没有被加和-这不是我想要的,我不知道为什么会发生这种情况。有什么建议吗?你知道吗</p>
<p>测试用例结果:</p>
<pre><code>[1, 2, 2 Expected: 5. My result: 5 (OK)
[1, 2, 2, 6, 99, 99, 7] Expected: 5. My result: 5 (OK)
[1, 1, 6, 7, 2] Expected: 4 My result: 4 (Chill)
[1, 6, 2, 2, 7, 1, 6, 99, 99, 7] Expected: 2 My result: 1 (Not chill)
[1, 6, 2, 6, 2, 7, 1, 6, 99, 99, 7] Expected: 2 My result: 1 (Not chill)
[2, 7, 6, 2, 6, 7, 2, 7] Expected: 18 My result: 9 (Not chill)
</code></pre>
<p>`</p>