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

Python函数check_22输出False而非True,求错误原因

代码错误分析与修复

问题根源

你的check_22函数存在逻辑错误:在第一次循环迭代时,只要当前元素和下一个元素不是连续的2,就直接通过else返回False,导致函数提前终止,完全没机会检查列表后续的元素。

比如传入的列表[3,2,5,1,2,1,2,2],第一次循环i=0,num_list[0]是3,不满足条件,函数直接返回False,根本没去检查最后两位的连续2。

修复后的代码

正确逻辑是:遍历整个列表,只要找到任意一对连续的2就返回True;只有遍历结束后仍未找到,才返回False。

def check_22(num_list):
    for i in range(0, len(num_list)-1):
        if num_list[i] == 2 and num_list[i+1] == 2:
            return True
    # 遍历完所有元素都没找到连续的2才返回False
    return False
        
print(check_22([3,2,5,1,2,1,2,2]))  # 现在会输出True

关键修改点

  • 移除循环内部的else: return False,将返回False的逻辑移到循环结束之后,确保完整遍历列表所有可能的连续元素对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:05:36