0

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

4

4 回答 4

4

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

于 2012-10-13T15:18:04.290 回答
4

raw_inputinput在 Python 3 中)EOFError一旦达到 EOF 就会抛出。

while 1:
    try:
        num = int(raw_input("enter a number: "))
    except EOFError:
        break
于 2012-10-13T15:18:46.320 回答
0

这会随时中断

这是一种原始的方法。

In [1]: while True:
   ...:     try:
   ...:         num = int(raw_input())
   ...:     except EOFError:
   ...:         break
   ...:         

我给出的输入的示例输出:

10
20
40
50

这不仅会破坏,EOF而且会破坏任何不转换为数字的输入。

于 2012-10-13T15:18:27.990 回答
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]
于 2020-04-10T08:57:51.587 回答