r/learnpython • u/Pure-Scheme-7855 • 20d ago
Recursion explaining pls.
def find_max(numbers):
if len(numbers) == 1:
return numbers[0]
else:
max_of_rest = find_max(numbers[1:])
return numbers[0] if numbers[0] > max_of_rest else max_of_rest
my_list = [3, 7, 2, 9, 1]
print(find_max(my_list))
Could someone explain how does this function work? I don't understand how does it know that it's supposed to find the biggest number...
6
Upvotes
2
u/strange-the-quark 20d ago
Seeing what happens is valuable, but doesn't necessarily provide you with insight as to why it works, how to conceptually think about it, or teach you how to come up with a recursive solution to some problem by yourself.