我有两个简单的函数来汇总和计算列表元素,而不使用标准的python命令,如sum()和len()。
#sum the elements of a list
def sum_list(x):
n=0
for i in x:
n= n+i
return n
离。如果x = [1,5] - 应该返回6
#count the number of elements in a list
def count_list(x):
n=0
for i in x:
n= n+1
return n
离。如果x = [1,5] - 应该返回2
问题是我无法理解它们是如何工作的。更具体地说:
1)在循环之前n = 0表示什么?这是某种出发点吗?
2)之后,我可以理解for循环的作用,但是我无法得到n = n + i和n = n + 1的实际含义。什么是" n"在这种情况下,以及为什么我添加" i" (n + i)在添加" 1"时给出总和。 (n + 1)给出列表的长度?
答案 0 :(得分:2)
利用print语句帮助您了解循环的工作原理。 (复制粘贴代码并运行) 回答你的问题
n - >是保存n+i
和n+1
值的变量,因此n+i
和n+1
的值存储在n
中(代码从左向右移动) 。您可以将其视为起点
所以n+i
或n+1
执行所需的计算并将数字存储在n
中,然后在下一步中将其返回。
回答你的问题"为什么如果我添加"我" (n + i)在添加" 1"时给出总和。 (n + 1)给出列表的长度?" :i
将随着每次循环迭代而不断变化,但在n+1
中,每次只有n
更改。因此,sum函数为您提供总和,而count函数为您提供长度。
您可以使用len
获取列表中的元素数量
希望这有帮助。
我添加了更多的print语句,以帮助您更好地理解它,运行代码并查看它是否有帮助。
def sum_list(x):
print("SUM FUNCTION START")
n = 0
for i in x:
print("n: ",n)
print("i: ",i)
n = n + i
print("n =",n,",","i= ",i)
print("n + i = ",n)
print()
print("SUM FUNCTION END")
print()
return n
def count_list(x):
print()
print("COUNT FUNCTION START")
n = 0
for i in x:
print("n: ",n)
print("i: ",i)
print("n =",n,",","i= ",i)
print("n + 1 = ",n)
n = n + 1
print()
print("COUNT FUNCTION END")
return n
#EASIER WAY TO COMPUTER LENGTH OF THE LIST USING len FUNCTION
def count_list2(x):
return len(x)
def main():
x = [1,2,3,4,5]
answer = sum_list(x)
print("Sum : ", answer)
elements = count_list(x)
elements2 = count_list2(x)
print()
print("There are", elements, "elements in the list")
print()
print("There are", elements2, "elements in the list")
main()