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

Python列表查找目标值返回错误 循环未正常迭代原因咨询

问题根因分析

函数返回逻辑位置错误,导致循环根本没完成迭代就提前终止了:

  • 传入测试列表x = [1,9,9,9,9,2,3,4,5,6,7]时,for循环第一次运行取到的索引是0,对应元素值为1,不满足nums[i] == 2的判断条件
  • 代码直接进入else分支执行return False,Python中只要函数执行到return语句就会立刻结束运行,后续的循环迭代完全不会执行,排在列表后面的元素2根本没有被检查的机会
  • 函数末尾写的pass是永远不会被执行的无效代码,因为前面的if/else分支已经触发return退出了函数。
原有问题代码
def consec_123(nums):
   for i in range(0, len(nums)):
        if nums[i] == 2:
            return True
        else:
            return False
pass
修正方案

把return False的逻辑移到循环外部,等遍历完列表所有元素、确认没有找到目标值之后再返回False:

def consec_123(nums):
    for i in range(len(nums)):
        if nums[i] == 2:
            return True
    # 全部元素检查完都没找到2,才返回False
    return False

更简便的实现可以直接用Python内置的成员判断语法,不需要手动写循环:def consec_123(nums): return 2 in nums

内容的提问来源于stack exchange,提问作者shivam tuli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:27:52