新手技术问题:如何处理多行输入并将其存入列表求和?
多行输入存列表并求和的几种方法
方法一:循环读取输入(通用场景,适合不知道输入行数的情况)
用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
相关产品推荐
相关产品推荐

