我对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社区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
答案 0 :(得分:2)
您为T
设置的值为5,这意味着while循环将运行6次,但您只提供5个整数。这就是为什么它试图读取额外的行并给你错误的原因。
因此,您应该将while循环中的条件更改为:
while T > 0:
答案 1 :(得分:2)
答案 2 :(得分:1)
将其更改为:
while T > 0:
如果您比较>=
并且您的示例仅提供5,则您要请求6个号码。
也许更好:
import math
for _ in range(int(input)):
num = int(input())
sqrt = int(math.sqrt(num))
if sqrt * sqrt == num:
print('1')
else:
print('0')
并删除T