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

新手技术问题:如何处理多行输入并将其存入列表求和?

多行输入存列表并求和的几种方法

方法一:循环读取输入(通用场景,适合不知道输入行数的情况)

用while循环配合异常处理读取所有输入,直到输入结束:

numbers = []
while True:
    try:
        # 读取一行输入并转为整数
        num = int(input())
        numbers.append(num)
    except EOFError:
        # 手动输入时按Ctrl+D(Windows按Ctrl+Z)触发该异常,退出循环
        break

# 用sum()函数直接对列表求和
total = sum(numbers)
print(total)

方法二:利用sys模块批量读取输入

如果输入来自文件或管道,用sys.stdin可以一次性读取所有行,效率更高:

import sys

# 列表推导式过滤空行并转换为整数
numbers = [int(line.strip()) for line in sys.stdin if line.strip()]
total = sum(numbers)
print(total)

方法三:已知输入行数时的写法

如果提前知道输入的行数,直接用for循环读取即可:

# 假设输入有5行
line_count = 5
numbers = [int(input()) for _ in range(line_count)]
total = sum(numbers)
print(total)

关于你尝试的x += x写法的问题

你写的这个逻辑是错误的:

  • 每次input()只会读取一行内容,新输入会直接覆盖之前的x值
  • x += x是把当前x的值翻倍,而不是累加新输入的数字,完全达不到求和的目的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:45:41