【问题标题】: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

标签: python linear-search


【解决方案1】:

问题是这一行 if(arr[i] == n):: nstr 类型,因此与 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。如果此答案解决了您的问题,请将其标记为已接受。
猜你喜欢
  • 2021-07-06
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 2020-05-04
相关资源
最近更新 更多