【问题标题】:Why am i getting this error and how to solve it为什么我会收到此错误以及如何解决它
【发布时间】:2019-05-16 18:12:37
【问题描述】:

在我的代码的每一部分之后,我都会打印一些东西,看看它的工作原理是什么。例如我的程序有多个输入。例如 3 表示要读取多少个数字,2 表示稍后我将对每个数字进行多少次迭代:

3 2
231 31 56

我只是想把每个数字都分解成数字。 (231 在 2 3 1)

n_k=raw_input().split()
n=int(n_k[0])
k=int(n_k[1])

numbers=[]
for i in range(n):
    numbers.append(raw_input())

for number in numbers:
    number=str(number)
    numerals=[int(x) for x in number]

print (numerals)

我收到此错误:

   numbers.append(raw_input())
EOFError: EOF when reading a line

【问题讨论】:

  • 在 raw_input() docs.python.org/2/library/functions.html#raw_input987654321@的文档中
  • 我在发布之前已经阅读了它们。我不明白我的代码有什么问题。
  • 我无法使用您提供的输入重现您的错误。您的代码并不是特别错误,而是您的输入。你得到EOF,它代表文件结束,你输入一个EOF。您可以使用 try-except 语句来处理它。
  • k 变量未使用
  • 您编写的代码需要每行一个数字(在带有两个数字的标题之后),而不是您的示例输入显示的所有数字。

标签: python python-2.7 list input


【解决方案1】:

您得到EOFError 可能是因为您在程序等待您的输入时终止了它。


如果我猜对了,您需要向用户询问一些数字,然后为每个数字打印数字。

这可以简单一点:

# python2.7
numbers = map(int, raw_input("Enter some numbers: ").split())
for number in numbers:
    print [int(x) for x in str(number)]

输入输出:

输入一些数字:12 0 182 3214
[1, 2]
[0]
[1, 8, 2]
[3、2、1、4]

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多