我有这个非常简单的Python函数,但有一部分我很困惑。该函数被称为更大,它需要两个数字作为输入并输出更大的数字。 (我只能使用if语句,没有elses)
以下是代码:
def bigger(x, y):
if x > y:
return x
return y
我认为如果y
更大(这样做),此代码将返回y
,但如果x
它会返回y
和x
}更大(它只返回x
)。为什么它只返回一个输出? Python函数只能有一个输出吗?
答案 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