python - Indexerror:::: 列表索引超出范围
问题描述
嗨,这是我的代码,我不知道为什么会收到此类错误
x = int(input())
n = [int(i) for i in input().split()]
middle = n[int((x - 1) / 2)
even = 0
odd = 0
for number in n:
if number % 2 == 0:
even += number
else:
odd += number
answer = even * odd + middle ** 2
print("{} x {} + {}^2 = {}".format(even, odd, middle, answer))
解决方案
它会产生这样的错误,IndexError: list index out of range
因为 n 具有用户输入的最小数量的列表值。
由于您的意图是让 n 具有比用户输入的最小位数更多的值,因此我将其添加.range()
到列表迭代中。
这是修改后的代码:
x = int(input("Put in a number: "))
n = [int(i) for i in range(int(input("Put in another number: ")))]
middle = n[int((x - 1) / 2)]
even = 0
odd = 0
for number in n:
if number % 2 == 0:
even += number
else:
odd += number
answer = even * odd + middle ** 2
print("{} x {} + {}^2 = {}".format(even, odd, middle, answer))
如果您有任何问题或需要澄清,请随时提问。
推荐阅读
- java - 春季测试课无法正常工作
- hibernate - Java.lang.NoClasssDefFoundError:当我通过消息驱动 Bean 类调用休眠会话时出现此异常
- angularjs - Angular 请求它如何用于 nestjsx/crud
- javascript - 如何使用material-ui网格创建行
- ios - 即使我启用了 PayPal 帐户选项,有时客人付款选项也不会显示在 iPhone 上
- python - ImportError:DLL 加载失败:找不到指定的模块。我的系统 32 文件夹中已经有了 msvcp140.dll
- swift - 如何将发布者传递给类
- r - 创建然后查找键值对的最有效方法
- python - 在数据框或 numpy 数组的列中进行数学运算
- google-analytics - 没有库的 Google Analytics 报告 API