线性搜索会打印找到和未找到列表中存在的值

时间:2019-01-24 19:52:49

标签: python python-3.x

在循环和打印后执行语句。

对于linearsearch代码,我尝试了很少的可能性,但是我不确定为什么最后一个打印语句会被执行?

def linearsearch(list, n):
    i = 0
    for i in range(len(list)):
        if(list[i] == n):
            return True
list = [4, 6, 8]
n = 4
if search(list, n):
    print("Found")
print("Not found")

预期输出:

  

找到

实际结果:

  

找到

     

未找到

2 个答案:

答案 0 :(得分:2)

f2只是您发布的代码中的最后一个项目,因此它将始终被执行。您尚未包含任何条件来阻止该行执行。顺便说一句,您根本没有调用print("Not found")函数。

您可能打算执行以下操作(引用您的linearsearch()函数并将您的linearsearch()变量重命名为list,因为踩踏内置组件不是一个好主意):

items

答案 1 :(得分:0)

如果用这种方式编写linearsearch(),可能会更Python化,更简单:

def linearsearch(list, n):
    return n in list

以下是示例用法的输出:

>>> def linearsearch(list, n):
...     return n in list
... 
>>> linearsearch([1,2,3], 1)
True
>>> linearsearch([1,2,3], 4)
False
>>>