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

解读CodeGrade中Python自动测试结果及代码问题排查

问题分析与解决

一、自动测试失败结果解读

这个测试用例的输入是"hello"和"world",系统预期的输出是elloorld\n(也就是两个单词去掉首字母后拼接的结果,加上print自动添加的换行符),但你的代码实际输出的是''\n(空字符串加换行),所以断言失败。其中:

  • - elloorld:代表系统预期的输出内容
  • + '':代表你的代码实际输出的内容

二、代码核心问题

你完全搞错了作业要求的逻辑!作业要的是去掉单词本身的首字母,但你的代码却在处理单词长度的字符串:

firstlength = len(firstword)
firstlength = str(firstlength)
firstword_minus = (firstlength[1:])

举个例子,当输入hello时,len(firstword)得到5,转成字符串是"5","5"[1:]切片后是空字符串;同理world的长度转成字符串切片后也是空,最后拼接起来自然是空字符串,这就是测试失败的原因。

三、修正后的代码

直接对原单词做切片操作即可,不需要处理长度:

firstword = input('Give me the first word: ')
secondword = input('Give me the second word: ')
firstword_minus = firstword[1:]
secondword_minus = secondword[1:]
print(firstword_minus + secondword_minus)

这样输入hello和world时,输出就是elloorld,完全符合测试预期,也不需要额外用repr()或str()——因为切片后的结果本身就是字符串。

四、如何读懂自动测试失败信息

  1. 第一行inputs: "hello", "world":明确告诉你当前测试用的输入值是什么
  2. assert "''\n" == 'elloorld\n':断言语句,左边是你的代码输出,右边是系统预期的输出,\n是print函数自动添加的换行符
  3. 下方的-和+行:-对应预期结果,+对应你的实际输出,直接对比就能看出内容差异

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:44:55