Python代码无法运行:数组奇数求和功能实现问题求助
奇数求和函数修复说明
原代码存在的问题
- 函数
odd_ones没有添加return语句,所有执行逻辑仅做打印,测试函数无法获取返回值做判断,所有用例都会返回None导致测试失败 - 循环取值范围错误,
range(0, len(array)-1)会自动跳过数组最后一位元素,导致求和结果缺失最后一位的数值 - 没有对空数组做分支判断,无法返回要求的
"Empty Array"字符串 - 偶数判断的分支逻辑错误,只要遇到单个偶数就打印
no odd numbers detected,不符合业务逻辑,应该是遍历完成后总和为0且数组非空时才提示无奇数 - 测试函数末尾存在语法错误,
print("TEST FAIL缺少闭合引号与括号
修复后完整代码
def odd_ones(array): # 先判断空数组情况 if not array: return "Empty Array" total = 0 # 直接遍历元素,不需要通过索引取值更简洁 for num in array: if num % 2 != 0: total += num # 遍历完成后判断是否有奇数 if total == 0: print("no odd numbers detected") return total def test_odd_ones(): print("Odd Ones Unit Test...\n") if odd_ones([1,2,3,4,5,6,7,8,9]) == 25: print("TEST PASSED") else: print("TEST FAILED") if odd_ones([3,3,1,1,5,5]) == 18: print("TEST PASSED") else: print("TEST FAILED") if odd_ones([2,4,6,10,20]) == 0: print("TEST PASSED") else: print("TEST FAILED") if odd_ones([]) == "Empty Array": print("TEST PASSED") else: print("TEST FAILED") # 执行测试 test_odd_ones()
内容的提问来源于stack exchange,提问作者fiennesharris
相关产品推荐
相关产品推荐

