我对Python还是个新手。我想写一个程序来检查一个数是否平方。我的代码:
import math
T = int(input())
while T >= 0:
num = int(input())
sqrt = int(math.sqrt(num))
if sqrt * sqrt == num:
print('1')
else:
print('0')
T = T - 1
代码在我的IDE(pycharm community 2017)中正常工作,但它会出现一个运行时错误,就像你在在线IDE(on geeksforgeeks ide)中看到的那样:
Traceback (most recent call last):
File "/home/043265f1cbdf257ecc20a7579588a4a4.py", line 5, in <module>
num = int(input())
EOFError: EOF when reading a line
4条答案
按热度按时间ykejflvf1#
您为
T
设置的值是5,这意味着while循环将运行6次,但您只提供了5个整数。这就是为什么它试图读取额外的一行并给你错误。所以你应该把while循环中的条件改为:
hivapdat2#
是,更改为:
您只提供了5个值。如果没有数据提供给 input(),则会发生EOF错误。文档中也有说明
p8h8hvxi3#
将其更改为:
如果您比较
>=
,则需要6个数字,而您的示例只提供了5个数字。也许更好:
并删除
T
kkih6yb84#
人们从哪里得到的想法或证明,变量T曾经被设置为5摆在首位?
我在安装Pydroid 3时也遇到了同样的问题。我所能想到的就是我一定是不小心在我的环境中安装了错误的库。除了c=input()和print(c)之外,我删除了所有的导入和代码,当它试图运行input函数时,我仍然会得到错误。这是一个bug,我一直看到,但偶尔它的工作!