NameError:未定义名称“结果”

时间:2014-04-28 22:49:28

标签: python python-2.7

我在python中编写了一个非常简单的程序

 for i in range(1,1000):
     if (i % 3 == 0) and (i % 5 == 0) :
           result += i

 else:
      print('sum is {}'.format(result))

当我尝试编译问题时,我收到错误。

NameError: name 'result' is not defined

4 个答案:

答案 0 :(得分:3)

本声明:

result += i

相当于:

result = result + i

但是,第一次在循环中达到此语句时,变量result尚未定义,因此该赋值语句的右侧未进行求值。

答案 1 :(得分:2)

在for循环之前添加result = 0

答案 2 :(得分:1)

首先,你的缩进是不一致和不正确的,这使得它更难阅读。

result = 0
for i in range(1,1000):
    if (i % 3 == 0) and (i % 5 == 0) :
        result += i
    else:
        print 'sum is ',result

这是解决错误的方法,但我不认为这实际上是您尝试做的事情。你试图解决的问题是什么?

答案 3 :(得分:0)

...或

try: 
    result += i
except:
    result = i

但是如果循环条件永远不会发生(你需要在打印输出中再试一次),这不会让你过去会发生什么,所以在循环之前设置它可能会更好。