python – IndexError:在数组搜索中列出索引超出范围

我在Python中创建一个简单的程序来执行线性搜索.但是当我运行这个程序时,它给了我这个错误:

Traceback (most recent call last):
  File "C:\Users\raj\Documents\EclipseProject\PythonProject1\myProgram.py", line 25, in <module>
    if array[myNumber] == search:
IndexError: list index out of range

这是我的计划:

array = []

numCase = input("Enter your number cases: ")

numCase = int(numCase)
array = [numCase]

print("Enter the number with", numCase, "times.")

for i in range(0, numCase):
    myNumber = input()
    myNumber = int(myNumber)
    array = [myNumber]

print("Enter the values which you're looking for: ")
search = input()
search = int(search)

for c in range(0, numCase):
    if array[myNumber] == search:
        print(search, "is present at", (c+1))
        break

# If number is absent!!
if c == numCase:
    print(search, "is not present!!")
最佳答案
您当前的问题是这一行

array = [myNumber]

您正在做的就是使用此行将数组重复设置为1个元素的列表,而不是将每个元素添加到数组中.请使用increment运算符=,以便实际将每个元素添加到数组:

array += [myNumber]

作为一个更惯用的选择,它看起来好像是在提示用户输入相同数字’x’次.正如TheBlackCat所提到的,您可以简单地构建数组

array = list(range(numCase))

如果这实际上是你想要做的.

另外,您应该使用c作为数组索引,因为它是您正在迭代的内容.

转载注明原文:python – IndexError:在数组搜索中列出索引超出范围 - 代码日志