【发布时间】:2023-03-19 04:45:01
【问题描述】:
由于某种原因,此 python 线性搜索将不起作用。每次我运行它并输入列表中的值时,它并没有告诉我该项目在列表中并且只是运行。 它没有给出任何语法错误,所以一定是合乎逻辑的。有什么想法吗?
def linearSearch():
numbers = [3, 5, 54, 6, 17, 8, 32, 65, 87, 54]
pointer = 0
print("What would you like to search for?")
searchTerm = input()
try:
val = int(searchTerm)
except ValueError:
print("Please enter an integer")
linearSearch()
while pointer < len(numbers):
if numbers[pointer] == searchTerm:
print("Item has been found at " + pointer)
else:
pointer = pointer + 1
【问题讨论】:
-
用调试器运行它时看到了什么?
-
为什么不尝试在 python 中使用索引功能呢? numbers.index(val) ??
-
为什么不直接使用
numbers.index(int(val))? -
您创建了一个变量
val,但在赋值后您从不使用它。这是故意的吗?此外,使用递归进行输入验证也不是一个好主意。请参阅Asking the user for input until they give a valid response 了解更多信息。
标签: python python-3.x search linear-search