python练习题6.4列表数字元素加权和,1

输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权和。第一层每个元素 的值为:元素值*1,第二层每个元素的值为:元素值*2,第三层每个元素的值为:元素值*3, ...,以此类推!

输入格式:

在一行中输入列表

输出格式:

在一行中输出加权和

代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

def getint(s,count):
    if type(s) == int:
        return s * count
    elif type(s) == str:
        return 0
    elif type(s) == list or type(s) == tuple:
        result = 0
        for i in range(0,len(s)):
            result += getint(s[i],count+1)
        return result
    else:
        return 0

s = list(eval(input()))
sum = 0
for i in range(0,len(s)):
    sum = sum + int(getint(s[i],1))
print(sum)

这个程序把上一个改改就好了。

给getint传入2个参数,一个参数是判断值,一个参数是控制第几层。再次调用count+1即可。

读书和健身总有一个在路上