Why Python Recursive Function Sometimes Returns None
Unlike iterative functions, recursive functions rely on their recursive calls to return values.当函数被多次调用时,需要适当处理返回值以获取所需的输出。
考虑以下python代码:此函数旨在使用递归找到两个数字的最大常见分隔线。但是,由于递归调用的返回值未正确处理。 print(gcditer(42,84))#返回42
要解决此问题,代码需要将递归呼叫的返回值传递回主函数。通过修改行GCDITER(a,b%a)以返回gcditer(a,b%a),该函数将正确返回最大的常见分隔线。def gcdIter(a, b):
a, b = min(a, b), max(a, b)
if b % a == 0:
print(a)
return a
gcdIter(a, b % a)
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3