提交代码测试提示task()缺必填参数,VS Code运行正常原因咨询
问题原因及解决思路
你的代码在本地VS Code能正常运行,是因为脚本末尾主动调用了task("Friend"),给task函数传了name参数,自然能输出正确结果。
而编程测试的自动评分机器人报错,核心原因是它调用task()函数时没有传入任何参数——很多在线编程评测平台的测试逻辑是直接单独测试函数本身,而非运行你整个脚本。比如它的测试代码可能是直接执行task(),而不是执行你写的包含调用语句的完整脚本,这时候就会触发"缺少1个必需的位置参数'name'"的错误。
解决方向
- 查看平台题目要求,是否允许给
name参数设置默认值,比如修改函数定义:
这样即使无参调用def task(name="Friend"): print("Hello", name + "!")task()也能正常执行。 - 确认平台是否要求函数返回结果而非直接打印,比如改成返回字符串的形式:
具体需匹配题目的输出要求。def task(name): return f"Hello {name}!"
内容的提问来源于stack exchange,提问作者Ahmad Bashiru Inuwa
相关产品推荐
相关产品推荐

