Uma função que chama a si mesma
O nome down está dentro de down, e cada passo passa um número uma unidade menor. Por isso down(3) escreve 3, depois 2, depois 1.
A linha if n == 0: return é a paragem. Quando n é 0, essa linha corre e down não volta a ser usado. Sem ela, os passos não acabam e o programa não chega ao fim. Essa forma partida não está em baixo.
def down(n):
if n == 0:
return
print(n)
down(n - 1)
down(3)
O ecrã mostra 3, depois 2, depois 1. print corre antes do down seguinte. down(1) escreve 1 e depois chega a down(0). down(0) cai na paragem, não escreve nada, e o programa acaba.
Ponha print na linha a seguir a down(n - 1). Os números menores saem primeiro, porque cada passo espera que o de dentro tenha acabado.
def down(n):
if n == 0:
return
down(n - 1)
print(n)
down(3)
O ecrã mostra 1, depois 2, depois 3. down(0) continua sem escrever nada. Os print correm na volta, por isso 1 é escrito antes de 2, e 2 antes de 3.
down(0) sozinho nunca chega ao print. A paragem corre logo.
def down(n):
if n == 0:
return
print(n)
down(n - 1)
down(0)
O ecrã fica vazio e o programa acaba. n já é 0, por isso print e o down seguinte são saltados.
Ler mal os ecrãs
O segundo programa não é 3, depois 2, depois 1. Essa ordem é do primeiro, onde print está à frente. Tire if n == 0: return de qualquer um e os passos não acabam. Não corra essa versão.
A página seguinte é uma lista de valores. Aqui só se vê uma função que usa o próprio nome, e a linha que a para no 0.
Siga os números
- O que escreve o primeiro programa, primeiro e depois?
- O que escreve o segundo programa, primeiro e depois?
- O que escreve o terceiro programa?
- Tira a paragem no 0. O programa chega ao fim?
O que down faz
O nome down dentro de down, com n - 1, desce de 3 até 1. print antes desse passo escreve 3, depois 2, depois 1. print depois escreve 1, depois 2, depois 3. if n == 0: return é a razão de o programa acabar. down(0) não escreve nada.
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo