Python 3.x 阶乘的递归函数
我写这段代码是为了得到10,然而,我相信我有一个无限循环,因为它不断重复相同的错误代码。我试图找到问题,但似乎找不到Python 3.x 阶乘的递归函数,python-3.x,recursion,Python 3.x,Recursion,我写这段代码是为了得到10,然而,我相信我有一个无限循环,因为它不断重复相同的错误代码。我试图找到问题,但似乎找不到 def calculatingfactor(num2cal): """this fuction will be calculating a mathematical factorial""" if num2cal == 1: returnvalue = 1 elif num2cal <= 0: returnvalue = 0 else:
def calculatingfactor(num2cal):
"""this fuction will be calculating a mathematical factorial"""
if num2cal == 1:
returnvalue = 1
elif num2cal <= 0:
returnvalue = 0
else:
print("Calculating the facterial of {}".format(num2cal))
variable2 = calculatingfactor(num2cal - 1)
returnvalue = calculatingfactor(num2cal*variable2)
return
#main code
first_fact=calculatingfactor(10)
print (first_fact)
def计算因子(num2cal):
“”“此函数将计算数学阶乘”“”
如果num2cal==1:
返回值=1
elif num2cal我觉得您代码的递归情况不正确。您应该使用递减1的
num2cal
调用同一个函数,然后返回当前值乘以递归调用返回的值
def calculatingfactor(num2cal):
if num2cal == 1:
return 1
elif num2cal <= 0:
return 0
else:
print("Calculating the facterial of {}".format(num2cal))
variable2 = calculatingfactor(num2cal - 1)
return num2cal*variable2
# main code
first_fact=calculatingfactor(10)
print (first_fact)
def计算因子(num2cal):
如果num2cal==1:
返回1
elif num2cal我确实试过了Tim,但不幸的是,我仍然得到了相同的错误类型error:*:“int”和“NoneType”的操作数类型不受支持,错误打印出来大约20个times@JoanthanMaldonado上面的代码。你的代码中肯定还有其他问题。你的编辑是正确的,这只是我这边的一个错误。非常感谢。但是,我发现您对阶乘有很好的理解:为什么要调用递归函数两次?第二次呼叫将永远不会结束,让您得到一个“StackOverflowException”。您应该更新->returnvalue*=variable2的第10行代码。还要注意,条件“elif num2cal