python - 使用 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
解决方案
您的问题几乎得到了回答,我只想向您展示一些技巧,以使您的程序更简单和pythonic。
而不是for循环尝试:
li = [int(i) for i in input().split(" ")]
而不是你计算总和的方式,尝试:
sum(li)
甚至更好:
sumOfItems = sum(int(i) for i in input().split(" "))
推荐阅读
- python - How to pass class variables to Parameterized Decorators
- c# - 如何使用基于声明的授权在 asp.net 核心中使用身份 2.1 隐藏/显示 UI 控件
- java - 按钮仅在一个接一个使用时才起作用
- sql-server - 如何从表中获得加减
- c# - 使用 c#(Web 应用程序)时无法识别 git'
- python - 从 colab 中的驱动器中的 python 脚本导入 python 模块
- postman - 邮递员如何在导入大量端点后设置环境url变量
- dart - 如何在颤动中获取文本小部件的大小
- android - 如何发出后台服务器请求?
- c# - ASP.NET MVC 错误消息“无法连接到 Visual Studio 开发服务器。”