single
Recursão
Deslize para mostrar o menu
Uma função recursiva é uma função que chama a si mesma para resolver um problema dividindo-o em partes menores e mais simples.
Os principais elementos da recursão são:
- Caso base: a condição que interrompe a recursão;
- Caso recursivo: a parte em que a função chama a si mesma com uma entrada mais simples.
Por que usar recursão?
Alguns problemas podem ser naturalmente expressos em termos de subproblemas menores. A recursão oferece uma forma clara e elegante de resolvê-los, fazendo com que uma função chame a si mesma para lidar com casos mais simples. É comumente utilizada em tarefas como processamento de árvores, exploração de caminhos ou decomposição de estruturas (por exemplo, listas, strings).
Um Exemplo Simples
123456def print_message(message, times): if times > 0: # Base case: stop when times is 0 print(message) print_message(message, times - 1) # Recursive case print_message("Hello, Recursion!", 3)
Siga passo a passo para entender como isso funciona:
times = 3→ condição é verdadeira, imprime a mensagem, chamaprint_message(message, 2);times = 2→ condição é verdadeira, imprime a mensagem, chamaprint_message(message, 1);times = 1→ condição é verdadeira, imprime a mensagem, chamaprint_message(message, 0);times = 0→ condição é falsa, a recursão para.
Resultado: a mensagem é impressa três vezes.
A Pilha de Chamadas
Cada vez que a função chama a si mesma, ela adiciona um novo quadro à pilha de chamadas — uma estrutura de memória que rastreia as chamadas de função ativas. Quando o caso base é alcançado, cada chamada anterior é concluída uma a uma em ordem reversa.
Toda função recursiva deve ter um caso base. Sem isso, a função continuará se chamando indefinidamente e causará um RecursionError.
Deslize para começar a programar
Implemente uma função recursiva list_sum que calcula a soma de todos os elementos em uma lista.
- Se a lista
numbersestiver vazia, retorne0— este é o caso base; - Caso contrário, retorne o primeiro elemento somado ao resultado de uma chamada recursiva com o restante da lista.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo