You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在while循环最后一次迭代中停止打印但不终止循环?

解决方案

哈哈,我明白你的问题啦——现在代码最后会多出来一个“Give 10 numbers 0 to go”的输入提示,而且这个输入的数字根本不会被加到总和里,完全是多余的。咱们可以调整循环逻辑,既能保证只输入10个数字、求和正确,又能删掉那行多余的提示:

修改后的代码(更简洁的结构)

counter = 0
sum_total = 0  # 建议别用sum当变量名,这是Python内置函数,容易引发冲突

while counter < 10:
    # 根据当前循环次数生成对应提示语
    if counter == 0:
        prompt = "Give 10 numbers\n"
    else:
        remaining = 10 - counter
        prompt = f"Give 10 numbers {remaining} to go\n"
    
    numbers = int(input(prompt))
    sum_total += numbers
    counter += 1

print(f"The sum of those numbers is {sum_total}")

逻辑说明:

  1. 去掉多余的无效输入:把输入操作放到循环内部,循环执行10次,正好输入10个数字,每个数字都会被累加到总和里,解决了原代码最后一次输入白忙活的问题。
  2. 精准控制提示显示:第一次输入用初始提示,之后每次输入显示剩余次数(从9到1),循环结束后没有额外的输入请求,自然就不会出现“0 to go”的尴尬提示了。

贴近原代码结构的修改方案

如果你不想大改原代码的框架,也可以加个简单判断来实现需求:

counter = 0
sum_total = 0
numbers = int(input('Give 10 numbers\n'))

while counter < 10:
    sum_total += numbers
    counter += 1
    # 只有还没收集够10个数字时,才继续请求输入
    if counter < 10:
        remaining = 10 - counter
        numbers = int(input(f'Give 10 numbers {remaining} to go\n'))

print(f'The sum of those numbers is {sum_total}')

这个版本和你原代码的结构几乎一致,只是在请求下一次输入前加了个判断:当counter < 10时才弹出输入框,这样当counter变成10时,就不会再显示那行多余的提示了,完美匹配你的需求~

内容的提问来源于stack exchange,提问作者Nadec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 15:42:41