给定若干行输入,每一行由若干个整数组成,要求对每行的整数进行求和,并输出每行的和。输入数据的行数未知,当输入结束时,程序停止。
1 2 3
4 5 6 7
8 9
6
22
17
本题知识讲解:
在 Python 中,处理多行不定数量的输入数据是一个常见的需求,特别是在面对不确定数据量的情况下。可以使用循环来不断读取输入,直到输入结束(EOF)。
for
循环和 sys.stdin
Python 提供了多种方式来处理不定组输入,其中一种常用的方法是使用 sys.stdin
结合 for
循环来逐行读取输入数据。
import sys
def main():
for line in sys.stdin:
numbers = list(map(int, line.strip().split()))
total = sum(numbers)
print(total)
if __name__ == "__main__":
main()
sys.stdin
是 Python 中的标准输入流对象(standard input stream)。sys.stdin
代表输入的所有数据。for line in sys.stdin
时,它本质上就是一个迭代器,会逐行读取输入。try-except
和 input()
另一种方法是使用 while
循环结合 try-except
来处理不定组输入:
def main():
while True:
try:
line = input()
numbers = list(map(int, line.strip().split()))
total = sum(numbers)
print(total)
except EOFError:
break
if __name__ == "__main__":
main()
input()
无法继续读取,会抛出 EOFError
异常。input()
抛出异常,退出循环,从而实现了多行输入。输入 EOF(End Of File,文件结束符),比如:
Ctrl+D
Ctrl+Z
然后回车输入结束,程序开始运行,输出结果。
题目的意思很简单,输入多行数,每一行包含若干整数,要求计算每一行所有整数的和并输出。由于输入的行数和每行的整数数量不固定,我们需要使用不定组输入的方法来处理。
# 读取一行输入并转换为整数列表
numbers = list(map(int, input().split()))
# 计算这些数的和并输出
print(sum(numbers))
读取输入
numbers = list(map(int, input().split()))
input()
函数用于从标准输入(通常是键盘)读取一行输入。split()
方法将输入的字符串按空格分割成多个部分,返回一个列表。例如,输入 "1 2 3"
会被分割成 ["1", "2", "3"]
。map(int, ...)
将列表中的每个元素转换为整数类型。list(...)
将 map
对象转换为列表。输入:
1 2 3
变量值:
numbers = [1, 2, 3]
计算和并输出结果
print(sum(numbers))
sum(numbers)
计算列表中所有整数的和。print()
函数用于将结果输出到标准输出(通常是屏幕)。6
# 读取多行输入并计算每行的和
import sys
def main():
for line in sys.stdin:
numbers = list(map(int, line.strip().split()))
total = sum(numbers)
print(total)
if __name__ == "__main__":
main()
input()
函数或 sys.stdin
结合循环读取不定数量的输入。map(int, ...)
将输入的字符串转换为整数类型,并使用 list()
将其转换为列表。sum()
函数计算列表中所有数的和。print()
函数输出结果。