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
这是我的想法。我是对的吗?
答案 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])
未定义。