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

向列表存储值时触发列表索引越界错误,求技术解决方案

问题排查与修复

错误原因

你的代码触发IndexError: list index out of range的核心问题:

  • 初始时factor是空列表,当第一个符合条件的i出现时(比如i=1),你执行factor[i](即factor[1]),但空列表没有任何可用索引,直接触发报错。
  • 代码逻辑完全搞反:你需要把符合条件的i存入列表,而非从列表取值赋值给i。

修正后的代码

factor = []
number = int(input("what is the number?"))
# 调整range范围,确保包含number本身(因数包含自身)
for i in range(1, number + 1):
    remainder = number % i
    if remainder == 0:
        # 用append将i添加到列表末尾,这是向列表存值的正确方式
        factor.append(i)
        # 打印当前找到的因数,或直接打印列表最后一个元素
        print(i)

# 可选:打印完整的因数列表
print("所有因数:", factor)

关键修改点

  • 替换错误的i= factor[i]为factor.append(i):append()是Python列表添加元素的标准方法,会自动把元素追加到列表末尾,无需手动处理索引。
  • 调整range(1, number)为range(1, number + 1):原代码的range范围会漏掉number本身(比如输入6时,只会遍历1-5),而一个数的因数必然包含自身,所以要修正范围。
  • 打印逻辑简化:直接打印当前的i即可,避免再次触发索引越界问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:41:04