使用WHILE循环实现1到N累加并支持持续输入直至输入0的功能问题排查
解决持续输入并计算1到N求和的问题
我懂你的困扰啦——现在你的代码只能完成一次1到N的求和计算,没法反复接收用户的新输入,对吧?咱们调整一下代码结构,把整个逻辑放进一个外层循环里,就能实现你想要的持续输入功能了。
修改后的代码
while True: # 每次循环先获取用户输入 num = int(input('N: ')) # 输入0时直接终止程序 if num == 0: print('END') break # 处理负数输入,直到用户输入非负整数 while num < 0: num = int(input('ERROR - N: ')) # 计算1到num的和(两种方式任选其一即可) # 方式1:用for循环手动累加 total = 0 for i in range(1, num + 1): total += i # 方式2:用Python内置sum函数,更简洁高效 # total = sum(range(1, num + 1)) # 打印求和结果 print('Sum: ', total)
关键改动说明
- 外层无限循环:用
while True创建一个持续运行的循环,直到用户输入0时通过break跳出,这样就能实现反复请求输入的效果。 - 输入时机调整:把请求输入的代码放到外层循环的开头,每次计算完成后,程序会自动回到这一步,等待用户的下一次输入。
- 变量名优化:把求和变量从
sum改成total,因为sum是Python的内置函数,用它当变量名可能会引发意想不到的冲突。 - 逻辑分层清晰:先处理输入验证(负数、0的情况),再进行求和计算,代码结构更直观,也更容易维护。
运行示例
输入:3
输出:Sum: 6
输入:-2
输出:ERROR - N:
输入:4
输出:Sum: 10
输入:0
输出:END
内容的提问来源于stack exchange,提问作者Samm
相关产品推荐
相关产品推荐

