I hope this is not too much of a stupid question, but why does the 'return 1' statement in this Python code return the factorial of a number? This also happens for 'return True', which I understand is equivalent to 'return 1'
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
n == 0
is the base case of the recursive function. Factorial of 0 is 1: reference
Once the base case returns 1, the statement return n * factorial(n-1)
will have the form: return n * 1
and so on.
in python when you multiply a number by True it will operate like you are multiply by One, and when you multiply a number by False it will operate like when you multiply by Zero.
so this is why you get a factorial af a number even if you use:
return True
instead of
return 1
but if you will call factorial(0) you will get True instead of 1.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.