调用栈问题
需要确保每次递归调用都会执行return语句
否则,会默认返回空值
例子:
def Euclidean_Algorithm(a, b):
'''
辗转相除法求最大公约数
:param a:
:param b:
:return: 最大公约数
'''
a, b = b % a, a
# print(a, b)
# 基线条件,整除
if not a:
return b
# 递归条件
else:
# Euclidean_Algorithm(a, b) # 错误,返回值为None. 因为递归过程没有执行return语句,返回空值
return Euclidean_Algorithm(a, b) # 正确
参考:
Python 递归函数返回值为None的解决办法 https://blog.youkuaiyun.com/ha_hha/article/details/79393041