为什么这个Python函数只有一个输出?

时间:2015-01-02 00:51:35

标签: python if-statement output

我有这个非常简单的Python函数,但有一部分我很困惑。该函数被称为更大,它需要两个数字作为输入并输出更大的数字。 (我只能使用if语句,没有elses)

以下是代码:

def bigger(x, y):
    if x > y:
        return x
    return y

我认为如果y更大(这样做),此代码将返回y,但如果x它会返回yx }更大(它只返回x)。为什么它只返回一个输出? Python函数只能有一个输出吗?

6 个答案:

答案 0 :(得分:3)

return语句不仅返回一个值,还终止当前函数并将控制权返回给调用函数。因此,此函数只返回一个值。在我看来,写这个会更清楚:

def bigger(x, y):
    if x > y:
        return x
    else:
        return y

但结果不会有所不同。

答案 1 :(得分:1)

Python函数只能返回一个值。可以将x和y都作为元组返回,但是这个函数的设置方式,它将返回一个值,然后退出函数。

答案 2 :(得分:1)

def bigger(x, y):
    if x > y:
        # when x>y, x will be returned and 'return y' in the last line will not be executed.
        return x
    # only if x<y, this line will be executed.
    return y

答案 3 :(得分:1)

在Python函数中,遇到return语句时,终止该函数的执行。执行上下文然后返回到调用函数的上下文。

因此,即使您看到两个return语句,如果遇到第一个语句(由于x大于y),该函数中没有任何其他语句运行。

https://docs.python.org/2/reference/simple_stmts.html#return

答案 4 :(得分:0)

试试这个

def bigger(x, y):
if x > y:
    a=(x,y)
    # or a=[x,y]
    return a
return y

这样,如果x更大,它将返回x和y,但如果y更大则返回y。我认为这是你的问题?

这样做的原因是return返回该值,然后退出该函数。所以它会离开 一旦命中返回,函数就会变大(x,y)。如果你想同时返回x和y,你可以使用元组,列表,无论你想要什么,就像我对元组一样。

答案 5 :(得分:0)

Python函数只返回一个值。

你可以尝试,

def bigger(x, y):

    #this is optional: value = None
    if x > y:
        value = x
    else:
        value = y
    return value