[英]Assigning return value of a function to a variable
我很难理解为什么我不能将这个简单函数的返回值赋给变量gcd
:
def euclidAlgorithm(m, n):
if n == 0:
print "n cannot be zero."
return -1
r = m % n # Remainder
if r == 0:
return n
else:
euclidAlgorithm(n, r)
if __name__ == "__main__":
#Input values
m = 54
n = 36
print "Input : m = ", m, " n = ", n
gcd = euclidAlgorithm(m, n)
if gcd == -1:
print "Function terminated with an error"
else:
print "Output: gcd = ", gcd
我没有把gcd
18,而是在运行时得到这个:
Input : m = 119 n = 4
Output: gcd = None
你在euclidAlgorithm(m, n)
的末尾缺少一个return
语句。 像这样:
def euclidAlgorithm(m, n):
if n == 0:
print "n cannot be zero."
return -1
r = m % n #Remainder
if r == 0:
return n
else:
return euclidAlgorithm(n, r)
你忘了返回递归的结果。
...
else:
return euclidAlgorithm(n, r)
你忘了return
:
return euclidAlgorithm(n, r)
在递归的情况下,你的函数不return
任何东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.