我如何解决线性搜索算法中的索引错误?

how do i solve index error in linear search algorithm?

n = int(input("Enter size of array"))
num = int(input("Enter numbers"))
for i in range(0, n):
    num = int(input(hello.append(num)))
print(hello)
x = int(input("enter number to check!"))
count = 0
while count <= len(hello):
    if (hello[count]==x):
        print("found")
        break
    elif (hello[count]!=x):
        count = count + 1
    else:
        print("not found")
        break

朋友们大家好,我是 DSA 初学者,我在线性搜索代码中遇到错误。如果我输入列表中存在的元素,代码将执行,但如果我输入不存在的元素,它会给我

"if (hello[count]==x): Index Error: list index out of range"

帮助我了解我的代码如何高效。 TNX

如果您只想检查数字 x 是否在列表 hello 中,您应该这样做:

if x in hello:
    print('found')
else:
    print('not found')

如果你取一个列表的长度,它会给出该列表中元素的总数。但是如果你想要那个列表的元素以索引作为元素的总数那么它会给出超出范围的错误。

例如:

$ l = [3,5,4,7,6]

$len(l)

5

$l[5]

IndexError: 列表索引超出范围

count 的最大值应为 len(hello)-1,因为这是该数组的最后一个有效索引。只需将循环修改为:

while count < len(hello):
    if (hello[count]==x):
        print("found")
        break
    else:
        count = count + 1
if count==len(hello):
    print("not found")