python递归返回无[重复]

问题描述 投票:0回答:1

我是非常新的python编程,虽然我在if语句内编写以下代码,但确定了a的值,但是,在我返回调用方之后,返回值始终为none,是否缺少任何内容来将if内的值返回阻止递归调用。

#! /usr/bin/env python3

def gcd_calc(a, b):
    if(b == 0):
        print(a)
        return a
    c= a%b
    gcd_calc(b,c)



if __name__ == "__main__":
    a, b = map(int, input().split())

    if(a<b):
        print(gcd_calc(a,b))
    else:
        print(gcd_calc(b,a))
python python-3.x recursion return greatest-common-divisor
1个回答
0
投票
您缺少return

def gcd_calc(a, b): if(b == 0): print(a) return a c= a%b return(gcd_calc(b,c)) #you need to return here as you are calling recursively if __name__ == "__main__": a, b = map(int, input().split()) if(a<b): print(gcd_calc(a,b)) else: print(gcd_calc(b,a))

© www.soinside.com 2019 - 2024. All rights reserved.