Python代码解题

输入一个嵌套列表,嵌套层次不超过10,根据层次,求列表元素的加权个数和。无论输入嵌套列表实际层次,第一层每个元素算10个元素,第二层每个元素算9个元素,第三层每个元素算8个元素,第四层每个元素算7个元素,...第十层每个元素算一个元素。 如:[1,2,[3,4,[5,6],7],8]
计算方法:1*10+1*10+1*9+1*9+1*8+1*8+1*9+1*10=73

输入格式:

在一行中输入列表

输出格式:

在一行中输出元素的个数加权和

输入样例:

在这里给出一组输入。例如:

[1,2,[3,4,[5,6],7],8]

输出样例:

在这里给出相应的输出。例如:

73
def s(ls,level):    
    sum=0    
    for i in ls:    
        if type(i)==int:    
            sum+=i*level
        else:                    
            sum+=s(i,level+1)    
    return sum    
ls=eval(input()) 
sum=s(ls,1)   
print(sum)

 

def s(ls,level):    
    sum0 = 0    
    for i in ls:    
        if type(i)==int:    
            sum0 += 10-level
        else:                    
            sum0 += s(i,level+1)    
    return sum0    
ls = [1,2,[3,4,[5,6],7],8]  #eval(input()) 
sum0 = s(ls,0)   
print(sum0)

你的问题在于 :sum+=i*level,如果是一层加10,二层是9,和本来的数字无关,不是乘 i,这块改了就对了