关于未定义的名称错误
问题描述:
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
,你是因为你有以下得到了错误。
谢谢! (我尝试了upvote,但它说我需要15个声望:\) –