Python “始终输出”;“不在列表中”;不管字符串是否在列表中

Python “始终输出”;“不在列表中”;不管字符串是否在列表中,python,python-3.x,list,output,Python,Python 3.x,List,Output,即使在输入列表中的字符串时,我也无法理解为什么输出总是“不在列表中”。我已经检查了变量是否正确地传递到LinearSearch函数中,并且认为这与我的语法无关(尽管我可能错了)。编程新手,这是我关于stackoverflow的第一个问题,所以不要对我太苛刻。:) 守则: def main(): NameList = [] found = bool for Index in range(0, 4): NameList.append(str(input(&qu

即使在输入列表中的字符串时,我也无法理解为什么输出总是“不在列表中”。我已经检查了变量是否正确地传递到LinearSearch函数中,并且认为这与我的语法无关(尽管我可能错了)。编程新手,这是我关于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运算符可以大大缩短这一过程。)

|逐步完成代码并将问题缩小到一个新的范围。然后问一个具体的问题。“为什么我的代码会这样做”是请大家也采取,阅读和。欢迎来到堆栈溢出!