你好!我不熟悉编码,我试图解决一个问题,这个问题要求我使用循环对列表中的所有负整数求和。我尝试使用for和while循环来解决这个问题,但得到了不同的答案。
循环代码
glist3 = [7,5,4,4,2,1,1,-2,-2,-4,-5]
total3=0
for i in glist3:
if glist3[i]<0:
total3+=glist3[i]
print(total3)
而循环代码
glist4 = [7,5,4,4,2,1,1,-2,-2,-4,-5]
i2=0
total4=0
while i2 < len(glist4):
if glist4[i2] < 0:
total4+=glist4[i2]
i2+=1
print (total4)
我得到的for loop的结果是-12(这是不正确的),但是while loop确实返回了正确的答案,即-13。我只是想问一下造成这种差异的可能原因。谢谢大家!强>
While循环循环,直到满足“While”关键字旁边定义的条件
For循环通过迭代器循环,例如:列表、字典甚至文件
例如,如果您循环浏览如下水果列表:
变量“水果”在第一个循环中等于“香蕉”,然后在第二个循环中等于“苹果”,依此类推。“水果”不等于该项目的索引。因此,在该示例中:
将导致错误,因为水果不是整数而是字符串
如果希望在for循环期间跟踪索引,则需要在for循环外设置一个变量,然后在循环中递增该变量
下面是一个使用for循环的工作示例:
错误在for循环中。你说的是
for i in glist3
,意思是变量i取每个数字的值,而不是递增1,但是你正在使用它索引列表将
glist3[i]
替换为i,这样您就可以添加实际的数字,而不是列表中索引处的数字,如下所示,这将起作用或者如果你想索引。。。使用范围也会起作用
两者现在都应该按预期返回-13
希望这有帮助,祝你好运
您可以在IDEX上循环。for循环覆盖值。使用值将索引返回到列表中
修正:
修复它
幸运的是,你的数字也都可以作为索引加入到你的列表中——尝试添加99,你会得到一个
IndexError
简短版本:
相关问题 更多 >
编程相关推荐