NameError: 名称'result'未定义

1 投票
4 回答
18154 浏览
提问于 2025-04-18 04:40

我写了一个非常简单的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 还没有被定义,所以赋值语句右边的内容不会被计算。

撰写回答