我应该在python中append
STDIN
中的所有整数值。
例如:
5
6
0
4
2
4
1
0
0
4
假设下面是来自 stdin的整数,如何将这些值附加到list
中?
我的代码:
result = []
try:
while raw_input():
a = raw_input()
result.append(int(a))
except EOFError:
pass
print result
谁能帮我?谢谢
结果只是打印 [6, 4, 4, 0, 4]
问题是你已经给raw_input()
打了两次电话。
while raw_input(): # this consumes a line, checks it, but does not do anything with the results
a = raw_input()
result.append(int(a))
作为关于 python 的一般说明。类似流的对象,包括打开用于读取的文件、stdin 和 StringIO
等,都有一个迭代器,可以迭代那里的行。所以你的程序可以简化为pythonic。
import sys
result = [int(line) for line in sys.stdin]
您在 while 行中每隔raw_input消耗一次,请更改此设置以测试"a"是否为非空。 例如:
result = []
try:
a = raw_input()
while a:
result.append(int(a))
a = raw_input()
except EOFError:
pass
打印结果
使用fileinput
模块解决了我的问题
import fileinput
for line in fileinput.input():
print line
将 while 循环中的 raw_input() 设置为变量(在您的例子中为"a")应该可以解决问题。
result = []
a = raw_input("Enter integer pls:n> ")
try:
while a is not '':
result.append(int(a))
a = raw_input("Enter another integer pls:n> ")
except ValueError:
pass
print result