for i in range编程

问题遇到的现象和发生背景

d = [9,10,8,9,9,8,10,9,10,8]
s = 0
目标是将d里的数字全部相加并使用循环结构,输出结果在s里

问题相关代码,请勿粘贴截图

for i in range(0,len(d)+1):
s = s + i

运行结果及报错内容

输出的结果为55 目标结果为90 怎么改也改不到那个答案

我的解答思路和尝试过的方法

for i in d:是可以的,但是要求一定要用for i in range

我想要达到的结果

目标结果为90,不知道问题出在哪,脑袋像堵住了一样想一天也没想出来,而且网上也没有类似的问题

img

img



```python
d = [9, 10, 8, 9, 9, 8, 10, 9, 10, 8]
s = 0
for i in range(0, len(d)):
    s = s + d[i]
print(s)


```

两种方法: 一种直接遍历列表的元素值,相加

第二种是遍历列表的索引下标,再用d[index]来相加

>>> d = [9,10,8,9,9,8,10,9,10,8]
>>> s = 0
>>> for i in d:
    s += i

    
>>> s
90
>>> d = [9,10,8,9,9,8,10,9,10,8]
>>> s = 0
>>> for i in range(len(d)):
    s += d[i]

    
>>> s
90
>>>

应该改成+d[i],因为你要加的是列表内容而不是计数器:

d = [9, 10, 8, 9, 9, 8, 10, 9, 10, 8]
s = 0
for i in range(0, len(d)):
    s = s + d[i]
print(s)

如果对你有帮助,还请帮忙点个采纳,谢谢!

这篇文章:for i in range ()的使用 也许有你想要的答案,你可以看看
你还可以看下python参考手册中的 python- range() 函数