如何实现不统计负数输入、仅遇0停止的计数器功能?
搞定你的计数器需求没问题!
完全可以实现你要的效果:让程序持续接收输入,只统计正数的平方和,负数直接跳过,只有输入0时才停止运行。我帮你修改了原代码,同时拆解下关键逻辑:
修改后的代码
count = 0 total = 0 while True: n = input() num = int(n) if num == 0: break # 输入0就终止循环 if num > 0: # 只处理正数,负数直接跳过统计 count += 1 total += num ** 2 print(total)
关键逻辑说明
- 把原来的
while n != '0'改成while True,这样能更直观地实现「持续运行直到遇到终止条件」的逻辑 - 每次输入后先转成整数
num,方便快速判断正负和是否为终止值 - 两层判断逻辑:
- 一旦输入的数是
0,立刻用break退出循环 - 只有当输入的数是正数时,才更新计数器
count和平方和total,负数直接跳过统计步骤
- 一旦输入的数是
- 循环结束后打印最终总和,完全符合你的需求
测试你的示例输入
输入序列:-1、10、8、4、2、0
-1被直接跳过,不参与统计- 正数的平方和计算:
10² + 8² + 4² + 2² = 100 + 64 + 16 + 4 = 184,和你给出的预期输出完全匹配
内容的提问来源于stack exchange,提问作者Lorin




