Módulo 13 - Funções
Retorno com return: a função que devolve resultado
10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Usar return para devolver o resultado de um cálculo.
- Guardar o valor retornado em uma variável e reutilizá-lo.
- Saber que função sem return devolve None.
- Entender que o return encerra a função imediatamente.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Retorno com return: a função que devolve resultado.
Os objetivos desta aula. Usar return para devolver o resultado de um cálculo. Guardar o valor retornado em uma variável e reutilizá-lo. Saber que função sem return devolve None. Entender que o return encerra a função imediatamente.
Veja o essencial, parte por parte.
Devolvendo o resultado para quem chamou. return devolve o resultado da função para o ponto exato onde ela foi chamada.
Sem return, a função devolve None. E o que acontece quando a função termina sem nenhum return?
return encerra a função na hora. Escrever linhas depois do return e esperar que executem: a função já terminou, elas são código morto.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Devolvendo o resultado para quem chamou
As funções que você criou até aqui mostram coisas na tela, mas não entregam nada de volta ao programa. Compare com a função len, que você usa desde cedo: ela não imprime o tamanho do texto; ela devolve o tamanho, e você decide o que fazer com ele, guardar, comparar, somar. Essa devolução é o trabalho do return. Quando o Python executa um return, a função termina e o valor indicado viaja de volta para o ponto da chamada. A chamada inteira passa a valer aquele valor, como se o Python a substituísse pelo resultado.
def somar(a, b):
return a + b
resultado = somar(2, 3)
print(resultado)
print(somar(10, 5) + 100)
# 5
# 115A chamada somar(2, 3) vale 5. Por isso dá para guardar em variável e usar em contas.
Olhe a última linha do exemplo com atenção, porque ela mostra o poder do return: somar(10, 5) vale 15, então a expressão inteira vale 115. O resultado de uma função com return é uma peça que se encaixa em qualquer lugar onde um valor caberia: dentro de outra conta, dentro de um if, dentro de outra chamada de função. Funções que só imprimem não têm essa flexibilidade, e essa diferença é o assunto central da próxima aula.
Sem return, a função devolve None
E o que acontece quando a função termina sem nenhum return? O Python não deixa a chamada valer nada no vácuo: ele devolve o valor especial None, que representa a ausência de valor. É o jeito da linguagem dizer esta função não tinha nada para entregar. As funções das aulas anteriores, como saudar e imprimir_cabecalho, devolvem None em toda chamada, e você nunca percebeu porque nunca tentou guardar o retorno delas.
def saudar(nome):
print(f"Olá, {nome}!")
valor = saudar("Maria")
print(valor)
# Olá, Maria!
# NoneA saudação aparece porque o print dentro da função rodou. Mas o retorno guardado é None.
Leia a saída com calma, porque tem duas coisas acontecendo. A primeira linha, Olá, Maria!, veio do print de dentro da função, que executou normalmente. A segunda linha, None, é o conteúdo da variável valor: como saudar não tem return, a chamada devolveu None, e foi isso que ficou guardado. Nenhum erro em lugar nenhum, e é justamente por rodar sem erro que esse comportamento confunde. Guarde este exemplo: ele é a semente do erro clássico que a próxima aula vai desmontar por completo.
- NoneType
- O tipo do valor None. Se uma conta quebrar com a mensagem unsupported operand type NoneType, é sinal de que um None entrou na conta, quase sempre vindo de uma função sem return.
return encerra a função na hora
Última peça do quebra-cabeça: o return não é só devolução, é também ponto final. Quando ele executa, a função acaba naquele instante, e qualquer linha abaixo dele, dentro da função, simplesmente não roda. Isso parece detalhe, mas vira ferramenta: combinado com o if do módulo 7, o return permite que a função responda cedo em um caso e continue em outro.
def classificar(numero):
if numero < 0:
return "negativo"
return "positivo ou zero"
print(classificar(-5))
print(classificar(12))
# negativo
# positivo ou zeroSe o primeiro return executa, o segundo nem é lido. Cada chamada sai por uma porta.
Siga o fluxo de classificar(-5): a condição é verdadeira, o primeiro return dispara, a função devolve negativo e termina ali. O segundo return nunca acontece nessa chamada. Já em classificar(12), a condição é falsa, o corpo do if é pulado e a execução desce até o segundo return. Esse padrão de múltiplos returns, um por caso, aparece na função verificar_aprovacao da prática deste módulo e em todo código Python profissional. Uma consequência direta: colocar código depois de um return incondicional é escrever linhas mortas, que nunca executam.
Teste rápido
Uma função executa um print e termina sem return. O que a variável x = minha_funcao() guarda?
Perguntas frequentes
- Qual é a diferença entre return e print?
- print mostra um valor na tela para o humano ler; return entrega o valor para o programa usar. São canais diferentes: um vai para os olhos, o outro vai para o código. A próxima aula é inteira sobre essa diferença, que é a mais importante do módulo.
- Uma função pode ter mais de um return?
- Pode, e é comum: um return por caminho do if, como na função classificar da aula. Em cada chamada, só um deles executa, porque o primeiro return alcançado encerra a função. Vários returns com condições claras costumam deixar a função mais legível que um único return no fim.
- O return pode devolver mais de um valor?
- Pode: return media, situacao devolve os dois de uma vez, e quem chama recebe com media, situacao = calcular(). Por baixo dos panos, o Python empacota os valores numa tupla, aquela do módulo 11. Neste curso básico quase sempre devolvemos um valor só, que cobre a grande maioria dos casos.
- Posso usar return fora de uma função?
- Não. O return só faz sentido dentro de um corpo de função, porque a tarefa dele é devolver algo para quem chamou. Usado solto no programa, o Python interrompe com SyntaxError: 'return' outside function, uma das mensagens mais diretas da linguagem.
- return sozinho, sem valor nenhum, serve para quê?
- Serve para encerrar a função naquele ponto, devolvendo None. É útil em saídas antecipadas: se um dado inválido chega, a função para ali e não executa o resto. É o equivalente educado de dizer não tenho resposta para isso.
- Como sei se uma função pronta do Python devolve algo ou só mostra?
- Consulte a documentação oficial ou faça o teste da variável: guarde o resultado e imprima. len e input devolvem valores; print devolve None (ele mostra, não entrega). Com o tempo você decora as mais comuns, e o teste da variável resolve as outras em dez segundos.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.