使用计算 GCD - Python 函数 return

Working with calculating GCD - Python function return

我写了一个代码来计算两个数字的 GCD。 (24,12) 的 gcd 是 12。函数 compute_gcd 计算 GCD 和 returns 它在 main 函数中打印。但是,当我 return 到主函数时输出是 none ,当我在 compute_gcd 函数本身中打印它时输出是 12 。

return使用 GCD 时我哪里出错了?

def compute_gcd(a,b):
    if(b==0):
        return a             # Prints 12 if I replace with print a
    else:
        compute_gcd(b,a%b)

def main():
    a=24
    b=12 
    print compute_gcd(a,b)   # Prints none

main()

您忘记在 else 分支中添加 return。这有效:

def compute_gcd(a,b):
    if b == 0:
        return a
    else:
        return compute_gcd(b,a%b)

def main():
    a=24
    b=12

    print compute_gcd(a,b)   # Prints 12

main()

您的 else 条件没有 return,因此输出是 none。如果您将其更改为

else:
  return compute_gcd(b,a%b)

你会得到 12.

试试这个……你必须在 else 语句

中做一个 return
def compute_gcd(a,b):
    if(b==0):
        return a
    else:
        return compute_gcd(b,a%b)

def main():
    a = 24
    b = 12

    print(compute_gcd(a,b))

main()