[10,20,30,40,50,60,70,80,90]
结果= for i in range(10,100,10):
tens=[]
tens.append(i)
[90]
结果= select * from test.score_card
where (playerId in(2,3)) or (playerId not in(0));
这里的实际代码区别是什么?在这种情况下,范围变量如何相互不同?
答案 0 :(得分:1)
在第二个例子中,'tens'变量在每个循环开始时被重置,所以在最后一个循环中,它被清空并且附加了'i'的最后一个值。
在第一个示例中,变量设置在循环外部,因此每次都不会重置。
答案 1 :(得分:1)
在你的第二个例子中,你正在for循环中初始化你的列表,你可以很容易地看到它在表单中写入:
for i in range(10,100,10):
tens=[]
tens.append(i)
如您所见,您在for循环的每个步骤中清空列表。在第一个示例中,您在 for循环之前创建了列表,因此它不会被清空。
答案 2 :(得分:0)
在第二种情况下:
for i in range(10,100,10):
tens = []
tens.append(i)
您正在将名为tens
的新变量分配给新列表,循环的每个迭代。这意味着您要创建多个单元素列表,并向它们添加单个值,然后通过将它们替换为新列表来丢弃它们。当你在循环之后检查tens
的值时,它只有最后一次迭代,即创建一个列表并向其追加90.
在第一种情况下:
tens = []
for i in range(10, 100, 10)
tens.append(i)
在这种情况下,您只在循环前分配给tens
,然后在列表中附加几个数字。如果在循环后检查tens
的值,则它具有该范围内的所有值。
这与范围无关,更多的是你在每次迭代时覆盖tens
成为新列表。
答案 3 :(得分:0)
首先,我建议您更新答案并正确显示代码。我假设这就是你的意思:
tens=[]
for i in range(10,100,10):
tens.append(i)
print(tens) # [10,20,30,40,50,60,70,80,90]
for i in range(10,100,10):
tens=[]
tens.append(i)
print(tens) # [90]
不同之处在于,在第二个循环中,您将在每次迭代中覆盖变量tens
,这导致仅输出最终语句:[90]