关于未定义的名称错误

问题描述:

abc_str = raw_input('A B C: ') 
print abc_str 
abc_list = abc_str.split() 
print abc_list 
# suuuum = 0 
for i in range(3): 
    suuuum += int(abc_list[i]) 
print suuuum 

Traceback (most recent call last): 
    File "tttest.py", line 7, in <module> 
    suuuum += int(abc_list[i]) 
NameError: name 'suuuum' is not defined 

如果我省略尖锐,一切都会好的。但为什么我应该先定义“suuuum”? 我的答案是因为我在将它分配给一个对象之前称为“suuuum”。然后我在终端试了一个+ = 8,如下:关于未定义的名称错误

>>> a += 8 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'a' is not defined 

这是我的想法。我对吗?

你说得对。当你写x += 1,它的意思如下:

x = x + 1 

所以,如果你没有定义x已经,你得到一个错误。因为解释者无法计算出平等的右边。

for i in range(3): 
    suuuum = suuuum + int(abc_list[i]) 

从而为第i个,在右侧的suuuum是不确定的:

在你的程序上面,当你评论suuuum,你是因为你有以下得到了错误。

+0

谢谢! (我尝试了upvote,但它说我需要15个声望:\) –