【PTA-python】第6章-4 列表数字元素加权和(1) (40 分)--递归函数使用

第6章-4 列表数字元素加权和(1) (40 分)

分析

想把[,]括号替换为特殊字符,依据出现次序,遇到!号则增加level标记值,顺序计算,遇到?号,level标记值-1,再顺序计算。但发现转换为其他字符在语义上无法通过。
在这里插入图片描述>可以通过递归函数计算,def 传入list和level。

解法

def fact(lst,level):
    sum=0
    for l in lst:
        if type(l)==int:
            sum+=l*level
        elif type(l)==list:
            sum+=fact(l,level+1)
    return sum
lst=eval(input())
print(fact(lst,1))

posted @ 2021-04-22 21:11  flybird2008  阅读(16)  评论(0)    收藏  举报  来源