Python实现summer_69函数:忽略6到9区间元素计算数组总和
问题解答
1. 有没有对应功能的内置函数?
Python没有专门实现「忽略从6开始到下一个9为止的所有元素求和」规则的内置函数,需要自己写逻辑实现。
2. 正确实现方式
你之前试图直接用remove()删区间的思路不可行:list.remove()只能删除首个匹配的指定元素,且是原地修改操作返回值为None,直接赋值会导致后续sum报错。
更稳妥的实现是用状态标记法,遍历数组时记录当前是否处于需要忽略的区间内:
def summer_69(arr): ignore = False total = 0 for num in arr: if num == 6: # 遇到6,开启忽略模式 ignore = True elif num == 9 and ignore: # 遇到对应结束的9,关闭忽略模式 ignore = False elif not ignore: # 不在忽略区间的数累加 total += num return total
3. 测试验证
运行你给出的测试用例结果完全匹配:
summer_69([1, 3, 5])--> 9summer_69([4, 5, 6, 7, 8, 9])--> 9summer_69([2, 1, 6, 9, 11])--> 14
空数组输入summer_69([])也会返回0,符合规则要求。
内容的提问来源于stack exchange,提问作者wydncwymsjgcs
相关产品推荐
相关产品推荐

