始终输出"is not in the list"无论字符串是否在列表中



我不明白为什么输出总是"不在列表中";即使我输入列表中的字符串。我已经检查了变量是否正确地传递到线性搜索函数,并且不认为它与我的语法有任何关系(尽管我可能错了)。编程新手,这是我关于stackoverflow的第一个问题,所以不要对我太苛刻。:)

代码:

def main():
NameList = []
found = bool
for Index in range(0, 4):
NameList.append(str(input("Enter a name: ")))
SearchName = input("Please enter the name you want to search for: ")
found = LinearSearch(NameList, SearchName)
if found == True:
print(SearchName,"is in the list.")
elif found == False:
print(SearchName,"is not in the list.")
def LinearSearch(NameList, SearchName):
for Index in range(0, 4):
if SearchName == NameList[Index]:
return True
else:
return False
main()

如果列表中的第一个名字不是您要搜索的名字,则您的LinearSearch函数将返回False。你必须让它完成对列表其余部分的循环,如果没有找到该名称,则返回False

def LinearSearch(NameList, SearchName):
for Index in range(0, 4):
if SearchName == NameList[Index]:
return True
return False

你可以对你的代码做的一个改进是搜索整个列表,不管它有多长,而不是只看前四个索引:

def LinearSearch(NameList, SearchName):
for name in NameList:
if SearchName == name:
return True
return False

(我不知道这个练习的目的是不是写LinearSearch,但是可以使用Python的in操作符来大大缩短。)

最新更新