Python中非常基本的缩进

时间:2016-05-17 20:38:48

标签: python

为什么使用这两个不同的代码(只有缩进不同)我得到两个不同的结果?

为什么在第一个代码的情况下,代码的执行速度不超过列表中的第二个项目?

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

3 个答案:

答案 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,退出函数。