Python 如何从具有多个输出的函数中获得单个输出?
我有以下简单的功能:Python 如何从具有多个输出的函数中获得单个输出?,python,function,return,Python,Function,Return,我有以下简单的功能: def divide(x, y): quotient = x/y remainder = x % y return quotient, remainder x = divide(22, 7) 如果我访问变量x,我会得到: x Out[139]: (3, 1) 有没有办法只获取商或余数?您实际上返回的是一个元组,我们可以对它进行索引,因此在上面的示例中: 打印x[0]将返回商和 print x[1]将返回剩余的您可以在调用方法时解压缩返回值:
def divide(x, y):
quotient = x/y
remainder = x % y
return quotient, remainder
x = divide(22, 7)
如果我访问变量x
,我会得到:
x
Out[139]: (3, 1)
有没有办法只获取商或余数?您实际上返回的是一个元组,我们可以对它进行索引,因此在上面的示例中:
打印x[0]
将返回商和
print x[1]
将返回剩余的您可以在调用方法时解压缩返回值:
x, y = divide(22, 7)
或者,您可以获取第一个返回值:
x = divide(22, 7)[0]
您有两个广泛的选择:
def divide(x, y, output=(True, True)):
quot, rem = x // y, x % y
if all(output):
return quot, rem
elif output[0]:
return quot
return rem
quot = divide(x, y, (True, False))
quot, _ = divide(x, y) # assign one to _, which means ignore by convention
rem = divide(x, y)[1] # select one by index
我强烈推荐后一种提法;这要简单得多
x,u=divide(22,7)
?您总是可以同时返回这两个值,但是您可以显式地忽略其中一个,我通常建议您在设置返回值的附加参数时使用此参数。或者,如果您只需要余数,请使用x=divide(22,7)。但是如果您只需要其中一个函数,那么为什么要调用该函数呢?为什么不使用更容易读写的rem=22%7
?还可以创建一个类来计算和缓存结果,如果您真的需要变得复杂,我强烈建议使用带有output arg的方法。选择是无止境的。也就是说,也许最好将简单的解决方案放在开头?@jpmc26或只是一个名为tuple的