无论字符串是否在列表中,总是输出 "is not in the list"
Always outputs "is not in the list" no matter if the string is in the list or not
我不明白为什么即使输入列表中的字符串,输出也总是“不在列表中”。我已经检查了变量是否正确传递到 LinearSearch 函数中,并且认为它与我的语法没有任何关系(尽管我可能是错的)。编程新手,这是我关于 Whosebug 的第一个问题,所以不要对我太苛刻。 :)
代码:
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
函数将 returning False
。您必须让它完成对列表其余部分的循环,然后 return 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
运算符来显着缩短。)
我不明白为什么即使输入列表中的字符串,输出也总是“不在列表中”。我已经检查了变量是否正确传递到 LinearSearch 函数中,并且认为它与我的语法没有任何关系(尽管我可能是错的)。编程新手,这是我关于 Whosebug 的第一个问题,所以不要对我太苛刻。 :)
代码:
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
函数将 returning False
。您必须让它完成对列表其余部分的循环,然后 return 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
运算符来显着缩短。)