由于提示用户在python 2中输入而导致EOFError

时间:2018-11-09 11:19:28

标签: python python-2.7

我正在尝试使用Python 2.7执行以上代码。我得到EOFError

def perfectNumberCheck(num):
    sum = 0
    for i in range(1, num):
        if num % i == 0:
            sum = sum + i
    if sum == num:
        print('1')
    else:
        print('0')


num = int(raw_input('come on dude:'))
perfectNumberCheck(num)

我在Python 3中没有问题,但需要在Python 2中提交作业。

1 个答案:

答案 0 :(得分:0)

当您的操作系统在后台自动调用脚本时,脚本中没有STDIN,因此它接收到意外的文件结尾(因为从技术上来说,stdin = / dev / null总是给出eof) 。 如here所述,您可以尝试以下部分:

import sys
for line in sys.stdin:
    print line

sys.stdin = open('CON', 'r')
num = raw_input("come on dude:")
perectNumberCheck(num)