[英]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.