我在Python上实现递归顺序搜索,如下所示:def search(list1,n,pos):
if n==list1[0]:
return pos
else:
if list1==[]:
return -1
else:
pos=pos+1
list1.pop(0)
return search(list1,n,pos)
def searchCall(n):
anylist=[1,2,3,4,5,6,7,8,9,10]
pos=0
search(anylist,n,pos)
def main():
i=searchCall(8)
print i
if __name__=="__main__":
main()
所以我要做的是尝试在列表中找到元素n,在每次递归调用中,我都会弹出列表的第一个元素,用剩余的列表再次调用搜索。问题是当我把这个
^{pr2}$
它打印找到元素的位置,但当我用以下内容更改时:return pos
它没有打印出来
另外,当找不到元素时,它应该返回-1,但会显示以下错误消息:if n==list1[0]:
IndexError: list index out of range
有什么帮助吗?在
谢谢