IndexError: list index out of range in array search
IndexError: list index out of range in array search
我正在 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]
您所做的只是将 array
设置为使用此行重复包含 1 个元素的列表,而不是将每个元素添加到 array
。请改用增量运算符 +=
,这样您实际上是将每个元素添加到 array
:
array += [myNumber]
作为一个更惯用的替代方法,它看起来好像是在提示用户输入相同的数字 'x' 次。如 TheBlackCat 所述,您可以简单地使用
构建 array
array = list(range(numCase))
如果这确实是您想要做的。
此外,您应该使用 c
作为您的数组索引,因为它是您正在迭代的内容。
我正在 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]
您所做的只是将 array
设置为使用此行重复包含 1 个元素的列表,而不是将每个元素添加到 array
。请改用增量运算符 +=
,这样您实际上是将每个元素添加到 array
:
array += [myNumber]
作为一个更惯用的替代方法,它看起来好像是在提示用户输入相同的数字 'x' 次。如 TheBlackCat 所述,您可以简单地使用
构建array
array = list(range(numCase))
如果这确实是您想要做的。
此外,您应该使用 c
作为您的数组索引,因为它是您正在迭代的内容。