Python如何仅打印奇数与偶数各自的最终累加和
问题原因&修复方案
你的代码出现重复打印中间结果的核心原因是print语句的缩进位置错误,同时还存在变量覆盖的隐藏bug,调整方法如下:
- Python靠缩进判断代码块归属,你当前的两个
print语句都写在if分支内部,每完成一次累加就会触发打印,只要把print调整到和for循环同级的位置,等整个循环跑完再打印,就能只输出最终结果 - 不要用接收用户输入的
n作为循环迭代变量,否则会覆盖原来的输入值,导致第二个循环的取值范围错误,建议把循环变量改成i - 原代码里的
n >= 1是无效语句,没有实际作用,如果需要校验输入值必须大于等于1,可以补全分支判断逻辑
修正后完整代码
# 允许用户输入数字 n = input("Enter a number: ") n = int(n) # 如果需要校验输入合法性可以放开下面的注释 # if n < 1: # print("输入值必须大于等于1") # exit() # 偶数求和 total = 0 for i in range(1, n+1): if i % 2 == 0: total += i # 循环结束后再打印,缩进和for保持同级 print("Sum of even numbers: ", total) # 奇数求和 total2 = 0 for i in range(1, n+1): if i % 2 == 1: total2 += i # 循环结束后再打印,缩进和for保持同级 print("Sum of odd numbers: ", total2)
内容的提问来源于stack exchange,提问作者user14443749
相关产品推荐
相关产品推荐

