首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python列表和def函数

Python列表和def函数
EN

Stack Overflow用户
提问于 2022-11-05 14:52:31
回答 2查看 46关注 0票数 -1

嗨,我对python很陌生,我的代码有一些小问题。

代码语言:javascript
复制
def Sumn(mylist):
    i = 0
    sum = 0    
    for i in mylist[1]:
        sum += mylist[i]
        return sum
    i+=1
代码语言:javascript
复制
import myFunctions

mylist = [6, 12, 645, 3, -8]
print(myFunctions.Sumn(mylist))

我原以为列表中的数字会加起来,然后再打印出来。

EN

回答 2

Stack Overflow用户

发布于 2022-11-05 14:57:38

逐行注释:

代码语言:javascript
复制
def Sumn(mylist):
    i = 0       # this variable is unused
    sum = 0     # variable name overrides builtin 'sum' function
    for i in mylist[1]:    # this will error because mylist[1] is a single int
        sum += mylist[i]   # this only works if i is an index of mylist
        return sum         # returns in first iteration
    i+=1        # this variable still isn't used for anything

正确的实现可能如下所示:

代码语言:javascript
复制
def Sumn(mylist):
    total = 0
    for i in mylist:  # iterate over each value in mylist
        total += i    # add it to total
    return total      # return AFTER the entire loop is done

当然,在现实生活中,您只需调用内置的sum函数:

代码语言:javascript
复制
mylist = [6, 12, 645, 3, -8]
print(sum(mylist))  # 658
票数 3
EN

Stack Overflow用户

发布于 2022-11-05 14:56:46

代码中有一些错误。在for循环中,您应该使用list myList,但是在list myList[1]的索引1处使用元素。

另外,for循环迭代元素而不是索引,因此应该将i添加到和中,而不是myList[i]

最后,return语句应该在循环之后,而不是在循环中。最后一行i += 1在返回之后,所以它什么也不做(只需删除它)。以下是固定代码:

代码语言:javascript
复制
def Sumn(mylist):
    list_sum = 0    
    for i in mylist:
        list_sum += i
    
    return list_sum 

顺便说一句。不要使用内置的变量名(sum)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74328755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档