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

如何修正Python列表校验代码:判断输入整数列表是否符合指定规则

Python列表校验代码修正方案

原代码存在的核心问题

  • 输入阶段仅校验了最后一个输入元素的取值范围,未校验列表首尾是否为0和20,也未校验所有输入元素都在0-20区间内
  • 遍历逻辑错误:for i in elem中elem是单个整数,无法遍历,应该从列表的第二个元素(索引1)开始遍历校验
  • 条件判断逻辑完全错误:Python中乘法不能用2(i)这种写法,且判定规则写反,正确规则是当前元素 = 前一个元素 + 2 或 当前元素 = 前一个元素 * 4
  • 原逻辑只要有一个元素符合条件就打印True,没有做到全量校验所有元素都符合规则才返回True

修正后的完整代码

lst = []
n = int(input("请输入列表的元素个数:"))

for i in range(n):
    elem = int(input("请输入0到20之间的整数:"))
    # 先校验单个元素取值范围
    if elem < 0 or elem > 20:
        print("输入元素超出0-20范围,校验不通过")
        exit()
    lst.append(elem)

is_valid = True
# 先校验首尾规则
if lst[0] != 0 or lst[-1] != 20:
    is_valid = False
else:
    # 遍历校验相邻元素规则
    for i in range(1, len(lst)):
        prev = lst[i-1]
        current = lst[i]
        # 两个条件满足任意一个即可
        if not (current == prev + 2 or current == prev * 4):
            is_valid = False
            break

print(is_valid)

核心逻辑说明

  1. 输入阶段就校验每个元素是否在0-20区间,不符合直接退出校验
  2. 优先校验首尾元素是否符合「开头为0、末尾为20」的要求,不符合直接判定为不通过
  3. 从第二个元素开始逐个和前一个元素比对,只要有一个元素不满足规则,立刻终止遍历判定为不通过
  4. 所有规则都满足才会输出True,否则输出False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:06:05