NameError未定义

时间:2016-04-21 16:29:42

标签: python-2.7

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

这是我的想法。我是对的吗?

1 个答案:

答案 0 :(得分:1)

你是对的。当你写 var filter = Builders<IVideo>.Filter.Eq("_id", doc.Id); await _collection.ReplaceOneAsync(filter , doc, new UpdateOptions { IsUpsert = true }); 时,意思如下:

x += 1

因此,如果您尚未定义x = x + 1 ,则会出现错误。因为翻译无法计算出相等的右侧。

在上面的程序中,当您评论x时,您收到了错误,因为您有以下内容:

suuuum

因此对于第一个i,右侧的for i in range(3): suuuum = suuuum + int(abc_list[i]) 未定义。