为什么在尝试对函数进行数学运算时会出现此“NoneType”和“NoneType”错误消息?

2024-09-27 07:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使此代码正常工作,但始终会显示此错误消息。代码如下所示:

  def fatorial(n):
    proximo = n - 1
    n = n * proximo
    while proximo > 1:
        proximo -= 1
        n = n * proximo
    return print(n) 
def coeficiente_binomial(n,k):
   a = fatorial(n)
   b = fatorial(k)
   div = b * fatorial(n-k) // a
   return print(div)

print(coeficiente_binomial(3,4))

错误消息如下所示:

TypeError:不支持*:“NoneType”和“NoneType”的操作数类型

我开始学习python,我不知道如何做这个练习。我感谢你的帮助


Tags: 代码div消息类型returndef错误print
3条回答

您的factorialcoeficiente_binomial返回print。请尝试以下操作:

但如果您正试图这样做,请考虑代码计算^ {< CD4>}。

def fatorial(n):
    proximo = n - 1
    n = n * proximo
    while proximo > 1:
        proximo -= 1
        n = n * proximo
    return n
def coeficiente_binomial(n,k):
   a = fatorial(n)
   b = fatorial(k)
   div = b * fatorial(n-k) // a
   return div

print(coeficiente_binomial(3,4))

尽量不要使用return print(n),而只使用return nreturn div,因为对于这种类型的代码,每次调用函数时,它都返回一个print语句而不是一个数字

你有3个打字错误

a = fatorial(n) # missing letter c
b = fatorial(k) # missing letter c
div = b * fatorial(n-k) // a  # missing letter c

相反,它们应该是:

a = math.factorial(n)
b = math.factorial(k)
div = b * math.factorial(n-k) // a

在发出这些命令之前,还必须导入数学模块

import math

按原样,函数fatorial(n)返回一个None类型的对象。下面是一个link来解释None类型的对象

进行这些更正后,您将发现另一个问题

div = b * math.factorial(n-k) // a
ValueError: factorial() not defined for negative values

这是因为math.factorial不能处理负数,即3-4 = -1

相关问题 更多 >

    热门问题