尝试从stdin获取输入并转换为求和的整数

时间:2016-10-04 19:25:56

标签: python

Python的新手。 尝试以数字形式从stdin获取输入。 416 2876 2864 8575 9784并使用循环转换为int的总和。

在转换为int以便在循环中使用时有一段可怕的时间。想得到整数问题的提示,然后尝试解决自己。试图在转换后测试我的代码以打印整数。

目前有:

import sys
s=sys.stdin
n=(sys.stdin.split())
while (int(n) >= 1):
    print(n)

3 个答案:

答案 0 :(得分:1)

您可能不想直接使用sys.stdin。请改用input()

line = input("Enter some numbers: ")

total = 0

for n in line.split():
    total = total + int(n)

print("The total is: %d" % total)

答案 1 :(得分:0)

user_input = input("Type some numbers: ")

numbers = user_input.split()

print(sum([int(x) for x in numbers]))

答案 2 :(得分:0)

如果你想从 stdin 读取并转换为int只是迭代stdin并拆分然后转换每个int和 sum

~$ cat test.py
import sys


print(sum(int(i) for sub  in sys.stdin for i in sub.split()))

padraic@dell:~$ printf "416 2876 2864 8575 9784\n123 456 789 120"|python test.py
26003

或使用地图:

import sys
print(sum(sum(map(int, sub.split())) for sub  in sys.stdin))

或者只是调用read和split。

import sys
print(sum(map(int, sys.stdin.read().split())))