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
相关产品推荐
相关产品推荐

