线性搜索未返回预期输出[重复]
Posted
技术标签:
【中文标题】线性搜索未返回预期输出[重复]【英文标题】:Linear search not returning expected output [duplicate] 【发布时间】:2021-08-31 17:22:00 【问题描述】:我正在 python 中进行简单的线性搜索,但它不起作用,我找不到我的代码有什么问题!!!
n = input("enter a number: ")
arr = [1,42,3,45,5]
count = 0;
for i in range(0, len(arr)):
if(arr[i] == n):
count = count + 1
if(count>0):
print("found")
else:
print("not found")
【问题讨论】:
arr[i] == int(n)
input
返回字符串
也不要使用 len 来遍历同一个列表,只需使用 for i in arr: if i == int(n): count += 1
【参考方案1】:
问题是这一行 if(arr[i] == n):
: n
是 str
类型,因此与 int
的比较总是会失败。
试试:
if arr[i] == int(n):
在这里,您在比较之前将n
转换为整数。请注意,如果您无法转换为 int
,这将引发错误。您可以按以下方式解决此问题:
n = input("enter a number: ")
arr = [1, 42, 3, 45, 5]
try:
if int(n) in arr:
print("found")
else:
print("not found")
except ValueError:
print("Not an integer")
【讨论】:
这是一个很好的方法,谢谢伙计,我犯了一个愚蠢的错误,我应该将用户输入转换为 int @SouvikSen 很高兴为您提供帮助,欢迎来到 Stack Overflow。如果此答案解决了您的问题,请将其标记为已接受。以上是关于线性搜索未返回预期输出[重复]的主要内容,如果未能解决你的问题,请参考以下文章