【问题标题】:Python Function Won't Return Value [duplicate]Python函数不会返回值[重复]
【发布时间】:2020-06-16 16:01:28
【问题描述】:

我正在尝试在 Python 中创建一个递归函数(作为在线课程的一部分),它接受两个数字并返回它们之间的最大公分母,但是,该函数不会返回值。

我的代码是:

def gcdRecur(a, b):
    x = min(a,b)
    y = max(a, b)
    if x == 0:
        return y
    else:
        gcdRecur(x, y%x)

当我用 gcdRecur(2,12) 或者 gcdRecur(6,12) 什么都没有返回。我知道该函数有效,因为如果我在返回之前打印 y,那么正确的分母会打印到控制台,我只是不确定为什么该函数不输出 y。

这可能是显而易见的,但由于我是 Python 新手,我不确定自己做错了什么。

任何帮助将不胜感激。

【问题讨论】:

  • 做:return gcdRecur(x, y%x)
  • 在某些语言中,函数的返回值是最后计算的表达式的值。 Python 不是其中一种语言。
  • def gcd(A,B): return A if B==0 else gcd(B,A%B) ,更漂亮更简单的一行gcd实现方式

标签: python function return


【解决方案1】:

您需要在两个分支中return 一些东西:

else:
    return gcdRecur(x, y%x)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2020-02-20
    • 2016-04-18
    • 2018-03-13
    • 2014-09-12
    • 1970-01-01
    • 2016-08-14
    相关资源
    最近更新 更多