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

Python程序故障排查:处理非数字输入并收集10个有效元素

修改方案:处理非数字输入并修复索引显示问题

原代码存在两个明显问题:一是未处理非数字输入的异常场景,二是用list.index(y)获取索引时,遇到重复偶数会返回第一个匹配项的索引,导致结果不准确。下面是修正后的完整代码:

num_list = []
even_count = 0
even_indices = []

# 收集10个合法数字
while len(num_list) < 10:
    try:
        number = int(input("Enter a number: "))
        num_list.append(number)
    except ValueError:
        print("输入错误,请输入有效的整数!")

# 统计偶数数量并记录索引
for idx, num in enumerate(num_list):
    if num % 2 == 0:
        even_count += 1
        even_indices.append((idx, num))

# 输出结果
print(f"偶数的数量: {even_count}")
for idx, num in even_indices:
    print(f"索引 [{idx}]: {num}")

关键修改说明:

  • 非数字输入处理:用while循环配合try-except捕获ValueError,当用户输入字符、小数等非整数内容时,直接提示错误并重新请求输入,直到收集满10个有效数字。
  • 索引准确性修复:改用enumerate()遍历列表,同时获取元素的索引和数值,彻底解决原代码中重复偶数索引显示错误的问题。
  • 变量命名优化:把list改成num_list(避免和Python内置类型重名),even改成even_count,让变量名更具可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:05:14