def calc_fact(n): 如果(n == 1 或 n == 0): 返回1 别的: n * calc_fact(n-1)
print(calc_fact(5))
试图创建函数来计算阶乘,不支持类型错误操作数*:对于 int 或 Nonetype 我不知道为什么谢谢
Python 代码中出现“类型错误:不支持的操作数类型为 *:'int' 和 'NoneType'”表明你试图对一个整数和一个
None
类型的值执行乘法运算,而这是不允许的。之所以会出现这种错误,是因为你的
calc_fact
函数在某些情况下没有返回任何值,从而导致隐式返回
None
。
以下是修改后的代码:
def calc_fact(n):
if (n == 1 or n == 0):
return 1
else:
return n * calc_fact(n-1) # 需要返回这个值
print(calc_fact(5))
此处的更改是在
else
块中添加了一个
return
语句。你需要从
calc_fact(n-1)
调用中返回结果。如果没有此
return
语句,递归调用
calc_fact(n-1)
的结果就不会被使用,并且
calc_fact(n)
函数会在
n
大于 1 时不返回任何值(隐式返回
None
)。