Python在用户列表中使用sum()

时间:2017-07-09 16:05:07

标签: python list sum average user-input

因此,我无法工作的这个项目的部分是sum()函数。 它适用于:

    a = [1, 2, 3, 4, 5]
    b = sum(a)
    print b

但在我的程序中,我有一个用户创建的列表,sum()一直出错。 len()有效,但我也需要总和来获得平均值。

     namelist = []              
     agelist = []

     while True:
        name = raw_input("Enter a name or type Exit to end data entry: ")
        namelist.append(name)

        if name == "Exit":      #creates an exit point from data entry 
            break

        age = raw_input("How old is " + name + "? ")
        agelist.append(age)

    lenage = len(agelist)
    sumage = sum(agelist)   #here is the problem -<<
    avgage = sumage / lenage

    print avgage

我怎样才能获得工作的感觉? 它不起作用,因为我没有定义列表有多长?

2 个答案:

答案 0 :(得分:3)

变量age具有类型字符串,因此您需要将其转换为整数:

agelist.append(int(age))

答案 1 :(得分:1)

错误的原因是agelist是一个字符串列表(来自用户的输入),并且在您可以&#34;添加&#34;之前那些输入你需要将它们转换为整数或(可能)转换为浮点数(取决于你想要的平均值:Python 2中的整数或浮点数):

sumage = sum(map(int, agelist)) # OR, replace int with float