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

Deslize para mostrar o menu

book
Recursão

Note
Definição

Recursão é uma técnica de programação em que uma função chama a si mesma para resolver um problema em partes menores. É especialmente útil para problemas com estrutura repetitiva ou subproblemas naturais.

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, permitindo 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).

1234567
def print_message(message, times): if times > 0: # Base case: stop when times is 0 print(message) print_message(message, times - 1) # Recursive case # Function call print_message("Hello, Recursion!", 3)
copy

Vamos analisar passo a passo como este programa recursivo funciona:

  1. Verificação da Condição: se times > 0, a função continua. Neste caso, times = 3, então a condição é verdadeira;

  2. Impressão da Mensagem: a função imprime "Hello, Recursion!";

  3. Chamada Recursiva: a função chama a si mesma com times - 1;

  4. Repetição: esse processo continua até que times seja igual a 0;

  5. Finalização: quando a condição times > 0 não for mais verdadeira, a recursão é encerrada e o programa termina.

Resultado: A mensagem "Hello, Recursion!" é impressa três vezes.

Compreendendo o fluxo:

Cada vez que a função chama a si mesma, ela adiciona um novo quadro à pilha de chamadas (uma estrutura de memória que acompanha as chamadas de função ativas). A função continua se chamando com um valor de times menor. Quando atinge o caso base (times == 0), ela para. Em seguida, cada chamada anterior é finalizada uma a uma em ordem reversa. Esse comportamento de retrocesso é essencial para o funcionamento da recursão.

Tarefa

Swipe to start coding

Dada uma string representando um número de telefone, que pode conter espaços, traços, parênteses ou outros caracteres não numéricos. O objetivo é extrair apenas os dígitos utilizando recursão.

  1. Se a string de entrada number estiver vazia, retornar uma string vazia.
  2. Verificar se o primeiro caractere da string number é um dígito utilizando o método isdigit() em uma condição if.
  3. Se for um dígito, concatenar com o resultado de uma chamada recursiva para format_phone_number, passando a substring a partir do segundo caractere.
  4. Se não for um dígito, fazer uma chamada recursiva para format_phone_number, ignorando o primeiro caractere.

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

close

Awesome!

Completion rate improved to 4.35

book
Recursão

Note
Definição

Recursão é uma técnica de programação em que uma função chama a si mesma para resolver um problema em partes menores. É especialmente útil para problemas com estrutura repetitiva ou subproblemas naturais.

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, permitindo 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).

1234567
def print_message(message, times): if times > 0: # Base case: stop when times is 0 print(message) print_message(message, times - 1) # Recursive case # Function call print_message("Hello, Recursion!", 3)
copy

Vamos analisar passo a passo como este programa recursivo funciona:

  1. Verificação da Condição: se times > 0, a função continua. Neste caso, times = 3, então a condição é verdadeira;

  2. Impressão da Mensagem: a função imprime "Hello, Recursion!";

  3. Chamada Recursiva: a função chama a si mesma com times - 1;

  4. Repetição: esse processo continua até que times seja igual a 0;

  5. Finalização: quando a condição times > 0 não for mais verdadeira, a recursão é encerrada e o programa termina.

Resultado: A mensagem "Hello, Recursion!" é impressa três vezes.

Compreendendo o fluxo:

Cada vez que a função chama a si mesma, ela adiciona um novo quadro à pilha de chamadas (uma estrutura de memória que acompanha as chamadas de função ativas). A função continua se chamando com um valor de times menor. Quando atinge o caso base (times == 0), ela para. Em seguida, cada chamada anterior é finalizada uma a uma em ordem reversa. Esse comportamento de retrocesso é essencial para o funcionamento da recursão.

Tarefa

Swipe to start coding

Dada uma string representando um número de telefone, que pode conter espaços, traços, parênteses ou outros caracteres não numéricos. O objetivo é extrair apenas os dígitos utilizando recursão.

  1. Se a string de entrada number estiver vazia, retornar uma string vazia.
  2. Verificar se o primeiro caractere da string number é um dígito utilizando o método isdigit() em uma condição if.
  3. Se for um dígito, concatenar com o resultado de uma chamada recursiva para format_phone_number, passando a substring a partir do segundo caractere.
  4. Se não for um dígito, fazer uma chamada recursiva para format_phone_number, ignorando o primeiro caractere.

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!

close

Awesome!

Completion rate improved to 4.35

Deslize para mostrar o menu

some-alt