NameError: 名称'result'未定义
我写了一个非常简单的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
或者……
try:
result += i
except:
result = i
不过这样做并不能解决如果循环条件永远不满足会发生什么的问题(你可能还需要在输出中再加一次尝试),所以在循环之前先设置这个值可能更好。
1
首先,你的缩进不一致而且不正确,这让代码更难读。
result = 0
for i in range(1,1000):
if (i % 3 == 0) and (i % 5 == 0) :
result += i
else:
print 'sum is ',result
这是解决你错误的方法,但我觉得这并不是你真正想要做的。你想解决的问题是什么呢?
2
在你的循环之前加上 result = 0
。
3
这段话的意思是:
result += i
和下面这段是一样的:
result = result + i
但是,当你的循环第一次到达这段代码时,变量 result
还没有被定义,所以赋值语句右边的内容不会被计算。