Python 函数不会返回值,而是返回“无”
请帮我看一下这段代码,它应该用来计算两个数字a,b之间的最大公除法。我遇到的问题是程序不会像预期的那样返回c,而是返回None。但是当我使用print语句时,它会打印出c的值 这是我的代码:Python 函数不会返回值,而是返回“无”,python,python-3.x,function,return,Python,Python 3.x,Function,Return,请帮我看一下这段代码,它应该用来计算两个数字a,b之间的最大公除法。我遇到的问题是程序不会像预期的那样返回c,而是返回None。但是当我使用print语句时,它会打印出c的值 这是我的代码: def gcd(a, b): if a == 0: return b elif b == 0: return a elif a > b: big, small = a, b else: big, smal
def gcd(a, b):
if a == 0:
return b
elif b == 0:
return a
elif a > b:
big, small = a, b
else:
big, small = b, a
c = big % small
if c == 0:
print(small)
return small
gcd(small, c)
print(gcd(1071, 462))
谢谢大家。当未遇到显式返回且函数体结束时,Python隐式返回None
在您的情况下,如果它通过所有其他情况,它只会命中:
gcd(small, c)
return None # you haven't put that in explicitly but that's how Python processes it
因此,您可能只需要将最后一行更改为:
return gcd(small, c)
你忘了最后一行的回程票了。返回gcdsmall,c。我假设这是一个练习,您知道Python已经包含math.gcd了吗?非常感谢。我在想if语句中的返回就可以了。