如何在Python中扫描未知数量的数字?

时间:2012-10-13 15:13:38

标签: python eof

有没有办法在Python中扫描未知数量的元素(我的意思是扫描数字,直到用户在标准输入eof(文件末尾)写入)?

4 个答案:

答案 0 :(得分:4)

您是否需要在输入第二个号码之前处理第一个号码?如果没有,那么int(s) for s in sys.stdin.read().split()可能会作为列表理解(在[]中)或生成器表达式(在()中,例如作为函数参数)。

答案 1 :(得分:4)

一旦达到EOF,

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]