问题是修复故意不正确的代码,以便可以执行pyUnit测试。代码中的错误将通过测试找到,然后更正。我上一次测试在代码中生成了一个错误,但我无法发现它!在
给定代码(带错误)
def linear( target, list ):
""" returns the position of target,
if not found returns -1"""
position = 0
if len(list)==0:
return -1
else:
while position <= (len(list)+1):
if target == list[position]:
return position
position += 1
return -1
我的测试:
^{pr2}$生成我的错误的测试是最后一个测试:“test iu isNotInList(self)”,这是一个索引越界错误…应该足够简单,但我只需要一点帮助。在
在上一个测试中,函数访问
list[5]
,这超出了范围。这将导致IndexError
。在不引发异常的情况下,您可以访问的最大索引小于列表的长度。您可以通过修改while
循环的条件来解决此问题:或者更好的方法是直接迭代列表,使用
^{pr2}$enumerate
确定位置:相关问题 更多 >
编程相关推荐