You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数组左移k位输出与验证不匹配,请求排查代码问题

问题分析与解决
  • 问题根源:你的shift_left函数最终返回的是None,但单元测试unittest.output_test是将函数的返回值(即None)和期望的[40, 50, 60, 0, 0, 0]做对比,必然会判定错误。控制台能打印正确结果,是因为函数内部直接修改了传入的source数组本身,但单元测试并没有检测原数组,而是检测函数的返回值。

  • 修复方案:修改函数的返回语句,让它返回处理后的source数组,而非None。

修改后的代码:

k=3
source = [10,20,30,40,50,60]
def shift_left(source,k):
    length = len(source)
    for first in range(k):
        for second in range(0,length-1):
            source[second] = source[second+1]
        source[length-1] = 0
    print(source)
    return source  # 修改为返回处理后的数组

shift_left(source,k)

print("///  Test 01: Shift Left k cell  ///")
source = [10,20,30,40,50,60]
returned_value = shift_left(source,3) # 现在返回的是处理后的数组
unittest.output_test(returned_value, [40, 50, 60, 0, 0, 0])

补充说明:你的函数采用了原地修改原数组的方式,这种写法在部分场景下可能存在副作用,但当前单元测试逻辑明确期望函数返回处理后的结果,因此调整返回值即可解决问题。

内容的提问来源于stack exchange,提问作者Luke Bexhill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:55:40