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

Python统计满足3个条件的数字数量代码输出为0问题求解

Python代码错误排查:find_numbers函数输出异常问题

核心错误点梳理

  • 语法&缩进错误:Python依赖缩进区分代码块,原代码中函数定义内部逻辑、if/else分支下的代码全部没有正确缩进,属于语法错误,实际运行会直接抛出IndentationError。
  • number_contains函数实现完全缺失:当前函数直接返回bool类对象,未实现「判断x的数位是否包含m」的逻辑;且调用该函数时没有传入x和m两个必填参数,属于参数传递错误。
  • 循环终止逻辑完全错误:原代码在两个分支都加了break:
    1. 遇到第一个不能被f整除的数时,直接终止整个循环
    2. 遇到能被f整除但不包含m的数时,也直接终止整个循环
      传入参数为3、5、100时,第一个遍历的数是1,1%3 !=0,直接触发break,循环直接结束,结果自然为0。
  • 冗余错误:往结果列表z追加值时,写的是z.append("x"),追加的是固定字符串"x"而非当前遍历的变量x,虽然当前场景统计长度不受影响,但逻辑完全错误。

修正后可运行代码

def number_contains(x, m):
    # 把x和m都转成字符串,判断数位是否包含
    return str(m) in str(x)

def find_numbers(f, m, n):
    z = []
    for x in range(1, n+1):
        # 同时满足两个条件才加入列表(范围限制已经由range保证)
        if x % f == 0 and number_contains(x, m):
            z.append(x)
    return len(z)

print(find_numbers(3,5,100)) # 输出为6,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:30:01