相当愚蠢的问题,但......
def gcd(a, b):
if a < b:
a, b = b, a
if a == 0:
return b
elif b == 0:
return a
return gcd(b, a % b)
所以当函数末尾没有return
时,为什么代码会返回None
?当它被递归调用并且a
或b
最终等于0
时,它会满足if
条件吗?然后它应该返回非零值。
答案 0 :(得分:3)
如果a
和b
都不等于零,则前两个返回语句都不会被执行。
如果没有最终返回,控制流到达函数的末尾而不会返回return语句,因此返回default value of None
。