gpt4 book ai didi

python - 尝试在 python 中使用 for 和 while 循环解决相同问题的不同结果

转载 作者:行者123 更新时间:2023-12-04 09:45:28 24 4
gpt4 key购买 nike

你好!我是编码新手并试图解决我试图解决一个问题,该问题要求我使用循环对列表中的所有负整数求和。我尝试使用 for 和 while 循环解决问题,但得到了不同的答案。

For 循环代码

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)

While 循环代码
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 循环 是 -12(这是不正确的),但 while 循环 确实返回了-13的正确答案。只是想询问造成这种差异的可能原因。谢谢!

最佳答案

错误在您的 for 循环中。你是说 for i in glist3 ,这意味着变量 i 正在获取每个数字的值,而不是递增 1 但您正在使用它对列表进行索引...

替换 glist3[i]仅使用 i,这样您就可以添加实际数字而不是列表中索引处的数字,如下所示,这将起作用...

glist3 = [7,5,4,4,2,1,1,-2,-2,-4,-5]
total3=0
for i in glist3:
if i<0:
total3+=i
print(total3)

或者,如果您想索引...使用范围也可以。
glist3 = [7,5,4,4,2,1,1,-2,-2,-4,-5]
total3=0
for i in range(len(glist3)):
if glist3[i]<0:
total3+=glist3[i]
print(total3)

两者现在都应该按预期返回 -13。

希望这有帮助,祝你好运!!

关于python - 尝试在 python 中使用 for 和 while 循环解决相同问题的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62140893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com