簡體   English   中英

將函數的返回值賦給變量

[英]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關鍵字,該函數會進行遞歸調用,但在達到基本條件之前沒有返回值。

請參閱: 在遞歸函數調用之前使用return子句與不使用函數調用有何不同?

因此,回歸很重要。

在遞歸的情況下,你的函數不return任何東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM