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

Python循环计数问题:首个符合条件的输入未被统计

Fix for Missing First Input Count in Number Range Counter

我来帮你排查这个问题——你的代码确实存在一个小逻辑漏洞:第一个输入的数字根本没机会被判断是否在100-200范围内。

咱们拆解下原代码的执行流程:

  1. 你先获取了第一个输入值存在entry里
  2. 进入while循环后,第一行就重新获取新输入覆盖了entry
  3. 这时候才判断新输入的数值是否符合条件,完全跳过了最开始输入的那个数

比如你输入123、150、0时:

  • 第一次entry是123,但进入循环后立刻被新输入的150覆盖,123根本没被检查
  • 接着判断150符合条件,total变成1
  • 最后输入0,循环结束,打印出的结果自然少统计了第一个数

修复方案一:用while True实现先输入再判断的逻辑(更直观)

这种写法能确保每一次输入都会被先检查是否是终止符0,再判断是否在目标范围内:

def counting():
    total = 0
    while True:
        entry = int(input("Type a number: "))
        # 先判断是否要退出循环
        if entry == 0:
            break
        # 再判断是否在100-200之间
        if 100 < entry < 200:
            total += 1
    print(total)

修复方案二:调整原循环的执行顺序

如果你想保留原来的循环结构,可以把判断逻辑放在获取下一个输入之前,这样初始的输入值会被先检查:

def counting():
    total = 0
    entry = int(input("Type a number: "))
    while entry != 0:
        # 先检查当前entry是否符合条件
        if 100 < entry < 200:
            total += 1
        # 再获取下一个输入
        entry = int(input("Type a number: "))
    print(total)

这两种写法都能解决你的问题,测试输入123、150、0时,都会得到正确的结果2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:10:50