Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Recursão | Recursão e Funções Lambda
Tutorial de Funções em Python
Seção 5. Capítulo 1
single

single

Recursão

Deslize para mostrar o menu

Note
Definição

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

123456
def 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:

  1. times = 3 → condição é verdadeira, imprime a mensagem, chama print_message(message, 2);
  2. times = 2 → condição é verdadeira, imprime a mensagem, chama print_message(message, 1);
  3. times = 1 → condição é verdadeira, imprime a mensagem, chama print_message(message, 0);
  4. 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.

Note
Nota

Toda função recursiva deve ter um caso base. Sem isso, a função continuará se chamando indefinidamente e causará um RecursionError.

Tarefa

Deslize para começar a programar

Implemente uma função recursiva list_sum que calcula a soma de todos os elementos em uma lista.

  1. Se a lista numbers estiver vazia, retorne 0 — este é o caso base;
  2. Caso contrário, retorne o primeiro elemento somado ao resultado de uma chamada recursiva com o restante da lista.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 1
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt