EOFError在input()上

时间:2018-06-26 15:14:42

标签: python python-3.x python-3.5 python-3.6

我找到了这段代码,我尝试在python 3上使用它,但是在极客IDE上不起作用

list=input('racecar:')

if (list==list[::-1]):
    print ("It is a palindrome")
else:
   print("it is not palindrome")

我得到了:

  

list = input('racecar:')EOFError:读一行时出现EOF

3 个答案:

答案 0 :(得分:1)

EOFError: EOF when reading line仅在input不可用或在通话过程中突然关闭的情况下才会在stdin通话中发生

由于您提到您是从geeks IDE使用它的,因此我假设它没有stdin重定向用于用户输入

请尝试使用cmd python <file>

在终端上交互式运行代码

答案 1 :(得分:0)

您想使用input接受用户输入,但可能没有将其提供给脚本。

相反,请尝试在尝试接受用户输入之前直接设置您的值。

test_values = [
    "non-palindrome",
    "123321",
]

def palindrometest(s):
    return s == s[::-1]

for value in test_values:
    if palindrometest(value):
        print("{} is a palindrome".format(value))
    else:
        print("{} is not a palindrome".format(value))

一旦完成这项工作,就可以单独在脚本中尝试input,以便对它的工作方式有个很好的了解。

s = input("please provide a value: ")
print("user provided '{}'!".format(s))

答案 2 :(得分:-2)

发生这种情况是因为您可能正在使用python 2.7。我刚刚在python 3.6上测试了您的代码,效果很好(我确实将变量列表更改为lis)。