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