Python中的运行时错误

时间:2015-06-27 08:10:43

标签: python

我对python相对较新。代码是一个在线评判中的问题的解决方案,但它会引发运行时错误。请帮我修复这段代码。谢谢。

import math
def square(n):
if n<0:
    return 0
else:
    tst=int(math.sqrt(n))
    if tst*tst==n or  (tst+1)*(tst+1)==n or (tst-1)*(tst-1)==n:
        return 1


t=input()
for i in t:

   n=input()
   flag=square(n)
   if flag==1:
       print "Case %l: Yes\n"%i

    else:
       print "Case %l: No\n"%i

    t=t-1

2 个答案:

答案 0 :(得分:1)

现在您的代码中的问题是您正在使用t = input()逐行接受输入,因此它第一次只返回第一行2

然后你试图遍历它,我认为你想循环那么多次,所以你应该把代码更改为 -

t=int(input())
for i in range(t):

使用range函数会使循环进行很多次,这就是你想要做的事情。

使用%符号进行字符串格式设置时,您必须提供%d%s等。似乎没有任何%l

示例 -

print "Case %d: Yes\n"%i

答案 1 :(得分:0)

尝试阅读python解释器抛出的信息:

Traceback (most recent call last):
  File "prog.py", line 17, in <module>
NameError: name 'i' is not defined

错误发生的行号(17)和错误类型('i'未定义)在回溯中清晰显示。