Python中如何仅输出1到输入自然数求和的最终结果
问题原因
你的代码里print(n)被缩进在for循环内部,每完成一次累加操作就会输出当前的中间结果,所以输入5时会依次打印出1、3、6、10、15这些值。
修改方案
把print(n)移到for循环外面,和for保持同级缩进,等循环完成所有累加后,再打印最终的总和。修改后的代码如下:
number = int(input("enter a natural number")) if number < 0: print("The number is not positive") else: n = 0 for i in range(1, number + 1): n += i print(n)
更简洁的写法
计算1到自然数的累加和可以直接用数学公式n*(n+1)//2,不需要循环,代码更高效简洁:
number = int(input("enter a natural number")) if number < 0: print("The number is not positive") else: print(number * (number + 1) // 2)
内容的提问来源于stack exchange,提问作者Tusa22
相关产品推荐
相关产品推荐

