You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

线性搜索(Linear search)算法Python实现部分正确性问题求助

线性搜索程序问题排查与修正

问题原因

你的代码逻辑存在关键错误:else分支的return语句被放在了for循环内部。这导致程序只检查列表的第一个元素就终止:

  • 若第一个元素等于目标值,返回索引0,结果正确;
  • 若第一个元素不等于目标值,直接执行return "not in list",循环直接结束,完全不会遍历列表后续的元素。

这就是为什么只有目标值为1(列表第一个元素)时能得到正确结果,其余情况都直接返回"不存在"的原因。

修正方案

把return "not in list"移到for循环外部,确保程序遍历完整个列表所有元素后,确认目标不存在才返回提示。另外建议不要用list作为变量名,它是Python内置类型,容易引发混淆,换成arr这类名称更合适。

修正后的代码:

def linsearch(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i
    # 遍历完所有元素未找到目标才执行
    return "not in list"

list1 = [1,2,3,4,5]

print(linsearch(list1, 1))  # 输出0
print(linsearch(list1, 3))  # 输出2
print(linsearch(list1, 6))  # 输出"not in list"

内容的提问来源于stack exchange,提问作者Mayank Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:52:05