【问题标题】:Python using sum() in a user made list [closed]Python 在用户创建的列表中使用 sum() [关闭]
【发布时间】:2017-07-09 16:05:07
【问题描述】:

所以,这个项目中我无法工作的部分是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

如何使 sumage 起作用? 是否因为我没有定义列表的长度而不起作用?

【问题讨论】:

  • 你应该将年龄从 str 转换为 int
  • 转换为int

标签: python list sum average user-input


【解决方案1】:

变量age是字符串类型,所以需要转换成整数:

agelist.append(int(age))

【讨论】:

  • 哇!谢谢!成功了!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 2013-08-08
    相关资源
    最近更新 更多