嗨,我对python很陌生,我的代码有一些小问题。
def Sumn(mylist):
i = 0
sum = 0
for i in mylist[1]:
sum += mylist[i]
return sum
i+=1import myFunctions
mylist = [6, 12, 645, 3, -8]
print(myFunctions.Sumn(mylist))我原以为列表中的数字会加起来,然后再打印出来。
发布于 2022-11-05 14:57:38
逐行注释:
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正确的实现可能如下所示:
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函数:
mylist = [6, 12, 645, 3, -8]
print(sum(mylist)) # 658发布于 2022-11-05 14:56:46
代码中有一些错误。在for循环中,您应该使用list myList,但是在list myList[1]的索引1处使用元素。
另外,for循环迭代元素而不是索引,因此应该将i添加到和中,而不是myList[i]。
最后,return语句应该在循环之后,而不是在循环中。最后一行i += 1在返回之后,所以它什么也不做(只需删除它)。以下是固定代码:
def Sumn(mylist):
list_sum = 0
for i in mylist:
list_sum += i
return list_sum 顺便说一句。不要使用内置的变量名(sum)。
https://stackoverflow.com/questions/74328755
复制相似问题