Gradescope自动评分器执行失败,提交斐波那契生成器代码后报错如何解决?
代码问题排查结果
你的代码存在以下几个会导致Gradescope自动判题失败的问题:
- 缺少main函数执行入口
你仅定义了main()函数,但Python不会自动执行自定义的main函数,需要在代码末尾补充触发逻辑,否则脚本运行后没有任何输出,自动判题器无法匹配结果:
if __name__ == "__main__": main()
- fibs函数存在无限循环风险
你使用while count != n作为循环终止条件,且每次循环会给count累加2。如果判题器的测试用例传入奇数的n值,count会直接跳过n的数值(比如n=3时count变化为0→2→4),永远无法满足终止条件,导致程序卡死触发超时报错。
建议将循环条件修改为while count < n,同时调整yield逻辑避免多余返回,参考修改如下:
def fibs(n): count = 0 val1 = 1 val2 = 1 while count < n: yield val1 count += 1 if count >= n: break val1, val2 = val2, val1 + val2
- 序列起始值不符合题目要求的可能
部分斐波那契习题要求序列从0开始(即0,1,1,2,3...),你当前代码默认从1开始输出,若和题目要求的规则不符也会导致答案匹配失败,可根据习题要求调整val1、val2的初始值。
内容的提问来源于stack exchange,提问作者MSS
相关产品推荐
相关产品推荐

