I have been trying hard to understand this exercise and the thing about max recursion depth, and I think your painstakingly typed explanation has helped to shed some light on this mind-boggling concept
So I would just like to check one last time with you again:
Essentially for this exercise, it has never been about using a built-in factorial function. I could have done something like:
if x <= 1:
return x * anything(x - 1)
and this will work as well (which I really tried, and it seems to, haha).
If that is the case, I finally understand why that exercise exists
One last question though: I thought return would cause a function to cease execution, so why is it that it is able to return until it reaches the specified base case, instead of having to stop right after the first return? like if I called anything(10), why would it go on to do 10 * 9 * 8... until x is < 2? why wouldn't the function just compute 10 * 9 and stop there since the return statement is present?
Sorry I am quite the newbie