Python代码错误排查:相邻奇数检测问题求解
问题排查与代码修正
原代码核心错误点
- 循环逻辑完全偏离需求:原代码用
range(list1[0], list1[4])遍历的是输入数值的数值范围,而非列表的索引,完全没有针对“相邻元素”进行检查 - 相邻检测逻辑错误:内层循环没有聚焦于当前元素的下一个相邻元素,而是遍历无关的数值范围,无法实现相邻奇数的判断
- 输出逻辑混乱:每一次循环都输出结果,没有“找到第一组就终止”的逻辑,导致多次输出不符合预期的内容
修正后的代码
# 按要求用list()、map()、int()处理输入,直接生成整数列表 nums = list(map(int, input().split())) found_pair = False # 遍历列表的前4个元素索引,检查当前元素与下一个元素是否均为奇数 for i in range(len(nums) - 1): current_num = nums[i] next_num = nums[i + 1] if current_num % 2 != 0 and next_num % 2 != 0: print(f"{current_num}, {next_num}") found_pair = True break # 找到第一组符合条件的相邻奇数后立即终止循环 # 若遍历完所有相邻对都未找到,输出NO if not found_pair: print("NO")
代码说明
- 输入处理:直接通过
list(map(int, input().split()))将输入的字符串分割后转换为整数列表,严格符合要求的函数用法 - 循环检测:遍历列表索引0到3(共4组相邻元素),每次检查当前索引对应的元素与下一个元素是否均为奇数
- 输出逻辑:找到第一组符合条件的相邻奇数后立即输出并终止循环;若遍历结束未找到任何符合条件的组,输出
NO
测试输入5 6 7 8 9时,所有相邻元素均不满足“双奇数”条件,会输出NO,与预期一致。
内容的提问来源于stack exchange,提问作者Jessica _0404 Wu
相关产品推荐
相关产品推荐

