为什么使用这两个不同的代码(只有缩进不同)我得到两个不同的结果?
为什么在第一个代码的情况下,代码的执行速度不超过列表中的第二个项目?
n = [3, 5, 7]
def double_list(x):
for i in range(0, len(x)):
x[i] = x[i] * 2
return x
print double_list(n)
// [6, 5, 7] None
n = [3, 5, 7]
def double_list(x):
for i in range(0, len(x)):
x[i] = x[i] * 2
return x
print double_list(n)
// [6, 10, 14] None
答案 0 :(得分:3)
Due to the indentation, in the first example, you are returning x after first iteration of the loop. In the second example, you are returning x after the loop iterates through the whole list.
答案 1 :(得分:1)
如上所述,缩进在Python中非常重要。它具有与其他语言中的大括号{}
类似的功能,并指示某些代码块的开始和结束位置。在你的情况下:
n = [3, 5, 7]
def double_list(x):
for i in range(0, len(x)):
x[i] = x[i] * 2
return x
return
里面的 for
循环,并且:
n = [3, 5, 7]
def double_list(x):
for i in range(0, len(x)):
x[i] = x[i] * 2
return x
外部此处for
循环。
每次将代码缩进一个 space (选项卡或常量空格)时,Python都会考虑这种嵌套。也就是说,第一种情况是嵌套在return
循环中的for
语句,因此函数在循环的第一次迭代中返回,而第二种情况return
语句是不嵌套,因此可以按预期返回。
答案 2 :(得分:1)
在Python中,缩进始终是相关的。因此,在您的第一个代码示例中,您实际上是在 for循环中返回。所以循环只执行一次,然后调用return
,退出函数。