Python3函数返回None。GCD与欧几里得
对于我来说,这段python 3代码没有返回任何值,而它显然应该返回12。我想不出来Python3函数返回None。GCD与欧几里得,python,python-3.x,Python,Python 3.x,对于我来说,这段python 3代码没有返回任何值,而它显然应该返回12。我想不出来 from math import * def gcd(m,n): print("gcd: ",m,", ",n,")") if n == 0: print(m) return m else: gcd(n,m//n) def main(): m = 60 n = 24 result = gcd(m,n)
from math import *
def gcd(m,n):
print("gcd: ",m,", ",n,")")
if n == 0:
print(m)
return m
else:
gcd(n,m//n)
def main():
m = 60
n = 24
result = gcd(m,n)
print(result)
main()
换线
gcd(n,m//n)
到
换线
gcd(n,m//n)
到
好的,谢谢!我能得到一些解释吗?为什么要返回它?如果不显式地说return,函数将不返回任何值。仅仅调用和计算gcd(n,m//n)没有任何作用。(你可能有R或函数式编程语言的背景吗?@Jpy:同样的原因,你写
return m
而不是m
,你写return gcd(…)
而不是gcd(…)
好的,谢谢!我能得到一些解释吗?为什么要返回它?如果不显式地说return,函数将不返回任何值。仅仅调用和计算gcd(n,m//n)没有任何作用。(你可能有R或函数式编程语言的背景吗?@Jpy:同样的原因,你写return m
而不是m
,你写return gcd(…)
而不是gcd(…)
我不知道你这样做是不是为了练习,但是在分数中已经有了gcd函数:我不知道你是不是在做练习,但是在分数中已经有了gcd函数: