有没有办法在Python中扫描未知数量的元素(我的意思是扫描数字,直到用户在标准输入eof(文件末尾)写入)?
答案 0 :(得分:4)
您是否需要在输入第二个号码之前处理第一个号码?如果没有,那么int(s) for s in sys.stdin.read().split()
可能会作为列表理解(在[]
中)或生成器表达式(在()
中,例如作为函数参数)。
答案 1 :(得分:4)
raw_input
(Python 3中的input
)就会抛出EOFError
。
while 1:
try:
num = int(raw_input("enter a number: "))
except EOFError:
break
答案 2 :(得分:0)
这会破坏任何
这是一种原始的方法。
In [1]: while True:
...: try:
...: num = int(raw_input())
...: except EOFError:
...: break
...:
我给出的输入的示例输出:
10
20
40
50
这不仅会破坏EOF
,还会破坏任何未转换为数字的输入。
答案 3 :(得分:0)
我找到了另一种方式...有时,我使用另一种称为R的编程语言。
在那里,您可以输入:
my_variable = scan()
...并根据需要输入数字。即使复制并粘贴。
然后,您可以转储输入:
dump(my_variable, "my_variable.Rdata")
my_variable.Rdata
是一个文本文件,其中包含R列表...可以轻松转换为Python列表:
# a list in R syntax:
my_variable <- c(1, 2, 3)
# a list in Python syntax:
my_variable = [1, 2, 3]