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

计算二项式系数时出现NoneType相乘TypeError错误该如何修复

问题原因

你编写的factorial函数没有显式返回计算结果,Python中函数如果没有写return语句,默认会返回None值。你在binomial函数中调用factorial(k)和factorial(n-k)拿到的都是None,两个None执行乘法运算自然会抛出类型错误,PyCharm的高亮也是提前检测到了参数类型不匹配的潜在问题。

修复方法

修改factorial函数,在计算完成后返回结果,而不是仅打印结果。如果你不需要单独打印阶乘结果,直接把print(prod)改成return prod即可,修改后的完整代码如下:

def factorial(n):
    prod = 1
    for i in range(1, n+1):
        prod *= i
    return prod


def binomial(n, k):
    # 二项式系数为整数,建议用整数除法//替代/,避免输出浮点数
    return factorial(n) // (factorial(k) * factorial(n-k))


for n in range(0,4):
    for k in range(0, n+1):
        print(f"n = {n} k = {k}\t{binomial(n,k)}")

如果你需要保留阶乘结果的打印逻辑,也可以在打印语句后补充返回语句:

def factorial(n):
    prod = 1
    for i in range(1, n+1):
        prod *= i
    print(prod)
    return prod

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:09:04