返回vs打印列表

时间:2015-08-31 13:18:41

标签: python list printing return

编程很新。
想知道为什么这个例子打印列表中的所有项目,而第二个例子只打印第一个?

def list_function(x):
    for y in x:
        print y 

n = [4, 5, 7]
list_function(n)
def list_function(x):
    for y in x:
        return y 

n = [4, 5, 7]
print list_function(n)

2 个答案:

答案 0 :(得分:4)

您的第一个示例遍历x中的每个项目,将每个项目打印到屏幕上。你的第二个例子开始遍历x中的每个项目,但随后它返回第一个,结束了那时函数的执行。

让我们仔细看看第一个例子:

def list_function(x):
    for y in x:
        print(y)  # Prints y to the screen, then continues on

n = [4, 5, 7]
list_function(n)

在函数内部,for循环将开始迭代x。首先将y设置为4,然后打印出来。然后将其设置为5并打印,然后打印7并打印。

现在看看第二个例子:

def list_function(x):
    for y in x:
        return y  # Returns y, ending the execution of the function

n = [4, 5, 7]
print(list_function(n))

在函数内部,for循环将开始迭代x。首先y设置为4,然后返回。此时,暂停执行该函数,并将值返回给调用者。 y永远不会设置为57。此代码仍然在屏幕上打印内容的唯一原因是因为它在print list_function(n)行上调用,因此将打印返回值。如果您在第一个示例中使用list_function(n)调用它,则不会在屏幕上打印任何内容。

答案 1 :(得分:-1)

对于函数return,终止执行,因此返回后不会执行任何操作。

在您的情况下,第一个功能将打印所有项目,因为没有任何内容会破坏该过程。但是在第二个函数中,将返回并结束该过程。