为什么这个 Python 函数只有一个输出?
Why does this Python function only have one output?
我有这个非常简单的 Python 函数,但有一部分我感到困惑。该函数称为 bigger,它接受两个数字作为输入并输出较大的数字。 (我只能用if语句,不能用else)
代码如下:
def bigger(x, y):
if x > y:
return x
return y
如果 y
更大(确实如此),我认为这段代码会 return y
,但它会 return x
并且y
如果 x
更大(它只有 returns x
)。为什么它只有 return 一个输出? Python 函数只能有一个输出吗?
Python 函数只能 return 一个值。可以 return x 和 y 作为一个元组,但是这个函数的设置方式,它将 return 一个值然后退出函数。
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
return
语句不仅 return 是一个值,而且还终止当前函数和 return 对调用函数的控制。所以,这个函数只会 return 一个单一的值。在我看来,这样写会更清楚一些:
def bigger(x, y):
if x > y:
return x
else:
return y
但结果不会不同。
试试这个
def bigger(x, y):
if x > y:
a=(x,y)
# or a=[x,y]
return a
return y
这样它将 return x 和 y 如果 x 更大,但如果 y 更大则为 y。我猜这是你的问题?
原因是 return 返回 1 值,然后退出该函数。所以它会离开
函数 bigger(x,y) 一旦达到 return。如果你想要 return x 和 y,你可以使用元组、列表,任何你想要的,就像我对元组所做的那样。
在Python 函数中,当遇到return
语句时,该函数的执行将终止。然后执行上下文返回到调用该函数的上下文。
因此,即使您看到两个 return
语句,如果遇到第一个语句(由于 x 大于 y),函数中的其他任何内容都不会运行。
https://docs.python.org/2/reference/simple_stmts.html#return
Python 仅 returns 一个值。
你可以试试,
def bigger(x, y):
#this is optional: value = None
if x > y:
value = x
else:
value = y
return value
我有这个非常简单的 Python 函数,但有一部分我感到困惑。该函数称为 bigger,它接受两个数字作为输入并输出较大的数字。 (我只能用if语句,不能用else)
代码如下:
def bigger(x, y):
if x > y:
return x
return y
如果 y
更大(确实如此),我认为这段代码会 return y
,但它会 return x
并且y
如果 x
更大(它只有 returns x
)。为什么它只有 return 一个输出? Python 函数只能有一个输出吗?
Python 函数只能 return 一个值。可以 return x 和 y 作为一个元组,但是这个函数的设置方式,它将 return 一个值然后退出函数。
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
return
语句不仅 return 是一个值,而且还终止当前函数和 return 对调用函数的控制。所以,这个函数只会 return 一个单一的值。在我看来,这样写会更清楚一些:
def bigger(x, y):
if x > y:
return x
else:
return y
但结果不会不同。
试试这个
def bigger(x, y):
if x > y:
a=(x,y)
# or a=[x,y]
return a
return y
这样它将 return x 和 y 如果 x 更大,但如果 y 更大则为 y。我猜这是你的问题?
原因是 return 返回 1 值,然后退出该函数。所以它会离开 函数 bigger(x,y) 一旦达到 return。如果你想要 return x 和 y,你可以使用元组、列表,任何你想要的,就像我对元组所做的那样。
在Python 函数中,当遇到return
语句时,该函数的执行将终止。然后执行上下文返回到调用该函数的上下文。
因此,即使您看到两个 return
语句,如果遇到第一个语句(由于 x 大于 y),函数中的其他任何内容都不会运行。
https://docs.python.org/2/reference/simple_stmts.html#return
Python 仅 returns 一个值。
你可以试试,
def bigger(x, y):
#this is optional: value = None
if x > y:
value = x
else:
value = y
return value