首页 > 解决方案 > 使用 input() 函数从标准输入读取数组会引发 EOF 错误

问题描述

基本上,我希望对标准输入中提供的数组元素求和。为什么说列表索引超出范围?input()python函数有什么特别之处吗?

length = int(input())
li = []

for i in range(0, length):
    li[i] = int(input())
    
sum = 0
for item in li:
    sum = sum + item

输入

编辑:第二行是单个字符串,而不是空格分隔的整数。

3
1 2 3

输出:

Traceback (most recent call last):
  File "./prog.py", line 6, in <module>
IndexError: list assignment index out of range

标签: python

解决方案


您的问题几乎得到了回答,我只想向您展示一些技巧,以使您的程序更简单和pythonic。

而不是for循环尝试: li = [int(i) for i in input().split(" ")]

而不是你计算总和的方式,尝试: sum(li)

甚至更好: sumOfItems = sum(int(i) for i in input().split(" "))


推荐阅读