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

Python实现next_multiple等函数无法正常运行 断言测试不通过求解

问题排查及修复方案

现有代码问题清单

  • next_multiple函数内部用input()获取输入覆盖了传入的参数,且input()返回字符串类型,无法直接进行数学运算
  • 循环逻辑存在语法错误:break语句写在循环体外部,且循环内仅反复将poc赋值为number+1,没有递增逻辑,会陷入死循环
  • 两个功能函数都没有添加return返回值,调用后返回None,无法通过断言校验
  • next_prime函数仅用pass占位,没有任何功能实现
  • 无关打印语句print ("Tohle prošlo")放在函数外部,加载代码时会直接执行

修复后完整代码

def next_multiple(number, k):
    # 计算刚好大于number的最小k的倍数
    return ((number // k) + 1) * k

def is_prime(n):
    # 辅助函数:判断是否为质数
    if n <= 1:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    for i in range(3, int(n**0.5) + 1, 2):
        if n % i == 0:
            return False
    return True

def next_prime(number):
    current = number + 1
    while True:
        if is_prime(current):
            return current
        current += 1

def main():
    assert next_multiple(1, 2) == 2
    assert next_multiple(10, 7) == 14
    assert next_multiple(10, 5) == 15
    assert next_multiple(54, 6) == 60
    assert next_multiple(131, 29) == 145
    assert next_multiple(123, 112) == 224
    assert next_multiple(423, 90) == 450

    assert next_prime(1) == 2
    assert next_prime(2) == 3
    assert next_prime(3) == 5
    assert next_prime(4) == 5
    assert next_prime(11) == 13
    assert next_prime(12) == 13
    print("所有断言测试通过")

if __name__ == "__main__":
    main()

修复说明

  • next_multiple改用整数运算实现,无需循环即可得到结果,删除了错误的输入获取逻辑,新增返回值
  • 新增is_prime辅助函数实现质数判断逻辑,next_prime从传入参数+1开始遍历,返回找到的第一个质数
  • 所有断言测试均可正常通过

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:54:00