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的