Python中如何读取多行数字输入并将其存入列表求和?
处理一行/多行数字输入并求和的Python方法
嘿,作为Python初学者碰到这种需求完全不用慌,我来一步步给你拆解怎么实现,保证易懂好用~
先处理你示例里的单行多数字情况
比如输入是2 3 1 4这种一行用空格分隔的数字,步骤很简单:
- 读取整行输入:用
input()函数获取用户输入的整行内容,它会把输入的所有内容(包括空格)当成一个字符串返回。 - 分割字符串成单个数字的字符串列表:用字符串的
split()方法,默认会按任意空白字符(空格、制表符都行)分割字符串,把每个数字拆成单独的字符串元素。 - 转换为整数列表:因为
split()得到的是字符串类型的数字,我们需要把它们转成整数才能计算,这里用列表推导式或者map()函数都可以,新手用列表推导式可能更容易理解。 - 求和:直接用Python内置的
sum()函数对整数列表求和就行。
完整代码示例:
# 获取输入行(可以加提示语让用户更清楚) input_content = input("请输入多个数字,用空格分隔:") # 分割成字符串列表 num_strs = input_content.split() # 转成整数列表 num_list = [int(num) for num in num_strs] # 计算总和 total_sum = sum(num_list) print(f"这些数字的总和是:{total_sum}")
如果需要处理多行输入的情况
比如用户可能分多行输入数字,比如:
1 5
3 2
4
这种情况下,我们可以一次性读取所有输入内容,再统一处理:
import sys # 读取所有输入(直到用户按下结束键,Windows是Ctrl+Z,Linux/macOS是Ctrl+D) all_input = sys.stdin.read() # 分割所有数字字符串(不管是空格还是换行都会被当成分隔符) num_strs = all_input.split() # 转整数列表并求和 num_list = list(map(int, num_strs)) total_sum = sum(num_list) print(f"所有数字的总和是:{total_sum}")
小提示
- 如果输入里混了非数字的内容,代码会报错,作为初学者可以先假设输入都是合法的数字,等以后熟悉了Python的异常处理,再用
try-except来处理这种情况哦~ split()方法如果不传参数,会自动忽略多个连续的空格,所以哪怕用户输入了多个空格分隔数字也没问题。
内容的提问来源于stack exchange,提问作者momo12321
相关产品推荐
相关产品推荐

