python - 打印和返回之间的区别

时间:2016-08-29 04:28:17

标签: python

如果我在此for loop打印function的结果:

def show_recommendations_for_track(tracks = [], *args):

    results = sp.recommendations(seed_tracks = tracks, limit=100)
    tracks = results['tracks']
    for track in tracks:
        print track['name']

它会打印100个曲目名称。

如果我将print换成return track['name']

它只打印一个曲目名称。

为什么?

4 个答案:

答案 0 :(得分:6)

返回停止执行整个函数并将值返回给被调用者(因此名称返回)。因为你在for循环中调用它,它在第一次迭代时执行,这意味着它运行一次然后停止执行。以此为例:

def test():
    for x in range(1, 5):
        print(x)
        return x

test()

这将提供以下输出:

1

这是因为for循环从1开始,打印1,但随后在return语句处停止所有执行并返回1,即当前x。

回归与印刷品差强人意。将打印输出打印到输出,返回将给定值返回给被调用者。这是一个例子:

def add(a, b):
    return a + b

此函数将a + b的值返回给被调用者:

c = add(3, 5)

在这种情况下,c,在分配时,称为add。然后将结果返回到c,被调用者,并存储。

答案 1 :(得分:1)

使用return时,循环仅在第一次返回时结束。这就是为什么只返回一个名字的原因。当你想从一个函数返回到另一个函数时,使用return。

这不是印刷品的情况。 print将继续执行直到循环结束。这就是打印所有曲目名称的原因。

答案 2 :(得分:1)

返回只会停止执行该功能(无论是循环,开关等等)!

通过使用return,您可以指定一个 返回 值的方法,允许您将该方法分配给变量。

E.g

def onePlusOne():
    return 1+1

然后,您可以将此方法分配给变量,如下所示:

onePlusOneEquals = onePlusOne()

打印只会将值打印到控制台。所以现在你可以打印onePlusOneEquals的值,如下所示:

print onePlusOneEquals

控制台将记录:

2

答案 3 :(得分:-1)

好的...编程语言101次,孩子们。

在Python中,print语句就是这样 - 将指示的值打印到标准输出(STDOUT)。在这种情况下,您将循环遍历整个tracks数组,并在其中打印每个值。

在大多数编程语言中,return关键字会将指示的值传递给调用函数,在调用函数中,它可以放在变量中并用于其他内容。例如,如果你这样调用你的函数:

track = show_recommendations_for_track(someTrackList)

track的值将是someTrackList中的第一个值。因为return立即结束函数,所以只有数组中的第一个值放在track中,而循环的其余部分不会发生。