Python返回用例

piv4azn7  于 2023-01-16  发布在  Python
关注(0)|答案(3)|浏览(113)

当我可以使用print()并且得到相同的结果时,为什么我要在python函数中使用return呢?是否有特定的用例或者我不明白的地方?如果你能简单明了地描述答案,我会很高兴的:)

使用打印:

def test(var):
    print(var)
test("Hello World!")

结果:你好,世界!

使用返回

def test(var):
    Return var
print(test("Hello World!"))

结果:你好,世界!

a9wyjsp7

a9wyjsp71#

用例是,将函数的结果输出到控制台并不总是,甚至很少。
假设有一个函数来求一个数的平方:

def square(number):
    return number * number

如果你用print(),你只需要把结果输出到控制台,没有别的,使用return,你可以把结果返回到函数调用的来源,这样你就可以继续使用它。
例如,现在您要将两个平方数相加,如下所示:a² + b²使用我们之前构建的函数可以执行以下操作:

number = square(a) + square(b)

如果square函数只是简单地将结果输出到控制台,这是不可能的,因为没有返回任何可以相加的内容。
是的,我知道你不需要一个函数来平方一个数,这只是一个例子来解释它。

mhd8tkvw

mhd8tkvw2#

return语句应用于需要处理函数输出结果的场合,例如getEvens函数,它试图返回给定列表中的所有偶数:

def getEvens(l):
    """
        The function takes a list as input and returns only even no.s of the list.
    """
    
    # Check if all elements are integers
    for i in l:
        if type(i) != int:
            return None  # return None if the list is invalid

    return [i for i in l if i%2 == 0]  # return filtered list

在这里的驱动程序代码中,我们将输入列表传递给getEvens函数,根据函数返回的值输出定制消息。

def main(l):

    functionOutput = getEvens(l)  # pass the input list to the getEvens function

    if functionOutput is None:
        # As the function returned none, the input validation failed
        print("Input list is invalid! Accepting only integers.")

    else:
        # function has returned some other value except None, so print the output
        print("Filtered List is", functionOutput)

如果我们现在考虑一些情况
案例一:

l = [1, 7, 8, 4, 19, 34]
main(l)
# output is: Filtered List is [8, 4, 34]

案例二:

l = [1.05, 7, 8, 4.0, 19, 34]
main(l)
# output is: Input list is invalid! Accepting only integers.

案例三:

l = [1, 7, 8, 4, "19", 34]
main(l)
# output is: Input list is invalid! Accepting only integers.

所以这里要注意的主要事情是我们使用函数的输出进行后续处理,在这个例子中,我们决定定制输出消息。一个类似的用例是函数链接,其中第一个函数的输出将是第二个函数的输入,第二个函数的输出将是第三个函数的输入(这个循环可能会持续更长时间;P)的报告。

omhiaaxx

omhiaaxx3#

在这种情况下,yes print会做完全相同的事情,但通常最好使用return语句,这样代码的可读性会比print更好
例如,如果您有以下代码

some_random_function("I am a String!")

如果不找到函数的定义,但使用return,您将无法知道函数的作用

# with a variable
v = some_random_function("I am a String!")
print(v)

# without one
print(some_random_function("I am a String!"))

代码突然变得可读性更强了,因为您知道函数返回了一些东西,然后打印了它,并且可能存在这样一种情况,即您需要函数输出,但不打印它。
希望这对你有帮助

相关问题