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

EOFError, even after trying the try and except block

任何人都可以说明它显示的原因。我在阅读输入状态后确认为 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

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())