【问题标题】:adding up items in a list error with PYTHON使用 PYTHON 在列表中添加项目错误
【发布时间】:2015-11-03 10:38:01
【问题描述】:

我正在尝试将列表中的所有项目相加,列表:

def sum_items(list):
    k = 0
    for i in range(len(list)):
        k = k + list[i]
    return k



list = [2,3,4,5] 

这是一个例子,我想对列表中的 n 项进行此操作

打印(k)

I got an error: File "xxx.py", line 15, in <module>
    print(k)
NameError: name 'k' is not defined

Process finished with exit code 1

【问题讨论】:

  • 你在哪里调用函数?
  • 我不相信他们是

标签: python list


【解决方案1】:

你需要先给k分配一些东西。

k = sum_items(list)
print (k)

print (sum_items(list))

如果您要对列表中的前“n”个项目求和,则可以使用切片:

def sum_items(n, yourList):
    k = sum(yourList[:n])
    return k

【讨论】:

    【解决方案2】:

    您需要将列表传递给sum_items 函数。并且不要使用list 作为变量名。

    def sum_items(lis):
        k = 0
        for i in range(len(lis)):
            k = k + lis[i]
        return k
    
    print(sum_items([2,3,4,5])) 
    

    lis = [2,3,4,5] 
    print(sum_items(lis))
    

    【讨论】:

    • 说了不要用list,那你就去用l吧。 PEP008:切勿使用字符“l”(小写字母 el)、“O”(大写字母 oh)或“I”(大写字母眼睛)作为单字符变量名称。
    【解决方案3】:

    嗯,Python 实际上有一个内置函数来获取列表中所有数字的总和。 sum([1, 2, 3]) 将返回 6

    但是,您的代码的问题在于您只在函数中定义 k。函数基本上是对某个未知值执行的一堆步骤。您需要像这样在值上调用函数

    k = sum_items([1, 2, 3, 4]) 
    

    函数的外部和内部

    例子:

    def add(n):
        return n+1
    
    k = add(4)
    print(k)
    

    这是唯一的问题。

    你需要做的是这样的事情

    def sum_items(l): #Don't use "list" for a variable because `list()` is an inbuilt function in Python
        k = 0
        for item in l: #Goes through the actual objects rather than calling them by index
             k += item #k = k + item
        return k
    
    print(sum_items([1, 2, 3, 4]))
    

    对于前 n 个项目,您可以使列表等于这些项目

    def sum_items(start, end, l):
        newList = l[start:end]
        #Do the same on newList
    
    
    print(sum_items(1, 3, [1, 2, 3, 4])) #Gives back value of 2+3+4 which is 11
    

    【讨论】:

      【解决方案4】:

      以下内容更像您想要实现的目标:

      def sum_items(a_list):
          total = 0
          for item in a_list:
              total += item
          return total
      
      my_list = [2,3,4,5] 
      
      print sum_items(my_list)
      

      在 Python 2.7 中测试

      【讨论】:

        【解决方案5】:

        您可以改用内置的 sum:

        print(sum(list))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-05-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-09
          • 1970-01-01
          • 2015-04-26
          相关资源
          最近更新 更多