使用For Loop计算数学公式未获正确结果,寻求技术帮助
问题分析与解决
你的代码问题出在嵌套循环里的break语句,以及错误的遍历逻辑:
- 外层循环每次取
x的一个元素,计算a = num + 1后,内层循环只取y的第一个元素(因为break直接终止了内层循环),所以每次计算的都是y[0] + a,结果自然是4、5、6。 - 而你需要的是
x和y对应索引位置的元素配对计算:(x[i]+1) + y[i],不需要嵌套循环。
修复方案1:用zip同时遍历对应元素
zip可以把两个列表的对应元素打包成元组,直接遍历即可:
x = [1, 2, 3] y = [2, 4, 6] for num, n in zip(x, y): a = num + 1 b = n + a print(b)
修复方案2:按索引遍历(适用于列表长度相同的情况)
如果习惯用索引控制循环,也可以通过索引访问两个列表的对应元素:
x = [1, 2, 3] y = [2, 4, 6] for i in range(len(x)): a = x[i] + 1 b = y[i] + a print(b)
运行任意一个方案,都会得到你期望的结果:
4 7 10
内容的提问来源于stack exchange,提问作者xalghvr
相关产品推荐
相关产品推荐

