EOFError,即使尝试了try和except块之后

时间:2019-01-20 09:46:51

标签: python-3.x eoferror

任何人都可以说出它出现的原因。读完输入状态后,我承认它是python,什么也没读。

  

Python 3.6

    #!/bin/python3

import math
import os
import random
import re
import sys

while True:
    try:
        N = int(input())
    except EOFError:
        return
#N = int(input())


if N % 2 != 0:
    print("Wierd")
elif N % 2 == 0 and N in range(2, 6):
    print("Not Wierd")
elif N % 2 == 0 and N in range(6, 21):
    print("Wierd")
elif N % 2 == 0 and N > 20:
    print("Wierd")



if __name__ == '__main__':
    N = int(input())

错误声明

Traceback (most recent call last):
  File "solution.py", line 27, in <module>
    N = int(input())
EOFError: EOF when reading a line
Blockquote

1 个答案:

答案 0 :(得分:0)

return仅在您位于某个函数内部并且要退出该函数时才有效。在这种情况下,您只想终止while循环,因此应使用break关键字。

在给定的问题中,您只需要读取一个整数(我想您正在使用不同的东西?)

import math
import os
import random
import re
import sys

while True:
    try:
        N = int(input())
    except EOFError:
        break
#N = int(input())


if N % 2 != 0:
    print("Wierd")
elif N % 2 == 0 and N in range(2, 6):
    print("Not Wierd")
elif N % 2 == 0 and N in range(6, 21):
    print("Wierd")
elif N % 2 == 0 and N > 20:
    print("Wierd")



if __name__ == '__main__':
    N = int(input())