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

Python如何让列表输入校验异常在两个列表输入完成后再提示

代码调整方案

核心调整逻辑为拆分输入环节与计算校验环节,先完成两次用户输入收集,再统一做异常判断与计算,避免单个输入出错直接中断后续输入流程。

修改后代码如下:

errors = []
list_one = None
list_two = None

# 完成两次输入采集,异常先收集不中断流程
try:
    list_one = eval(input())
except NameError:
    errors.append("The list has some non number values")

try:
    list_two = eval(input())
except NameError:
    errors.append("The list has some non number values")

# 全部输入完成后统一处理错误
if errors:
    # 若需展示所有错误可遍历errors输出,这里按原有逻辑输出单个提示
    print(errors[0])
else:
    try:
        total = 0
        newlis = []
        for i in range(len(list_one)):
            newlis.append(list_one[i] * list_two[i])
        for i in newlis:
            total += i
        print(total)
    except IndexError:
        print("Index out of bound")

关键调整说明

  • 新增errors列表统一收集输入环节产生的异常,保证两次输入操作都会执行完成
  • 替换了原有变量名sum,避免覆盖Python内置的sum()函数
  • 输入全部完成后先校验是否有收集到的错误,有则优先输出提示,无异常再执行列表点积计算逻辑
  • 若需同时展示所有输入错误,可将print(errors[0])替换为遍历errors列表输出所有内容
  • 额外提示:eval()存在注入安全风险,生产环境建议使用ast.literal_eval()替代实现输入解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:06:02