簡體   English   中英

如何用遞歸求和參數列表?

[英]how to sum a list of arguments with recursion?

我試圖編寫一個函數,該函數接受任意數量的參數,然后使用遞歸求和(我未使用內置的sum函數。我假設參數將為int。)

但是我的基本情況並不能阻止它再次發生! 有什么提示嗎?

def sum_all(*args):
 if args == ():
    return 0
 else:
    return args[0] + sum_all(args[1:])

您需要在遞歸中擴展args,而not args不足以進行測試:

def sum_all(*args):
    if not args:
        return 0
    return args[0] + sum_all(*args[1:])
                             ^

Python 3還添加了一些新語法,使您可以解壓縮*args ,例如:

def sum_all(*args):
    if not args:
        return 0
    a, *b = args
    return a + sum_all(*b)

暫無
暫無

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

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