我试图让这个代码正常工作,但总是出现这个错误消息。代码如下:
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,但我不知道如何做这个练习。非常感谢你的帮助
发布于 2021-06-05 02:20:51
尽量不要使用return print(n),只使用return n和return div,因为对于这种类型的代码,每次调用函数时,它都会返回一条打印语句,而不是一个数字
发布于 2021-06-05 02:22:02
您的factorial和coeficiente_binomial返回的print.Try如下:
但是,如果这正是您要做的事情,请考虑您编写了calculate factorial(-1)。
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))发布于 2021-06-05 02:45:10
你有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类型的对象。这是一个解释None类型对象的link。
进行这些更正后,您会发现另一个问题。
div = b * math.factorial(n-k) // a
ValueError: factorial() not defined for negative values这是因为math.factorial不能与负数一起工作,例如3-4 = -1。
https://stackoverflow.com/questions/67842139
复制相似问题