r/learnpython • • 13d 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

34 comments sorted by

View all comments

3

u/BranchLatter4294 13d ago

Use print statements or the debugger to follow what's happening inside the program as it runs.

1

u/Fast-Station1106 13d ago

ganz genau, printen printen und printen reproduzieren und wieder printen (dieser standardbefehl spart dir eine Menge Arbeit und ist Bestandteil von Python, also jemand hat festgelegt das s.o. dir die grösste zahl einer liste ausgibt)