Python 名称错误:名称';结果';没有定义

Python 名称错误:名称';结果';没有定义,python,python-2.7,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 在for循环之前添加result=0。在for循环之前添加res

我用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

在for循环之前添加
result=0

在for循环之前添加
result=0

此语句:

result += i
相当于:

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

此语句:

result += i
相当于:

result = result + i

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

首先,缩进不一致且不正确,这使得读取更困难

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

这是避免错误的方法,但我不认为这是你真正想要做的。您试图解决的问题是什么?

首先,您的缩进不一致且不正确,这使得它更难阅读

result = 0
for i in range(1,1000):
    if (i % 3 == 0) and (i % 5 == 0) :
        result += i
    else:
        print 'sum is ',result
这是避免错误的方法,但我不认为这是你真正想要做的。您试图解决的问题是什么?

try: 
    result += i
except:
    result = i
但是如果循环条件从未发生过,这将无法让您克服所发生的情况(您需要在打印输出中再次尝试),因此在循环之前设置它可能会更好

try: 
    result += i
except:
    result = i

但是如果循环条件从未发生过,这将无法让您克服所发生的情况(您需要在打印输出中再次尝试),因此在循环之前设置它可能会更好

您认为您在哪里定义了
结果
?如果你想让它从
0
开始,你必须明确这一点,并在开始时添加行
result=0
。另外,如果你在做Euler(或类似的),那么你想要一个结果计数可以被3或5整除……你认为你在哪里定义了
result
?如果你想让它以
0
开始,你必须明确这一点,并在开始时添加行
result=0
。另外,如果你在做Euler(或类似的),那么你需要一个可以被3或5整除的结果计数。。。