Ao iniciar sua jornada na programação, entender como trocar informações entre partes de um código é fundamental. Entender como usar o comando return no Python é o divisor de águas entre escrever scripts simples e desenvolver sistemas complexos e profissionais. Muitos iniciantes confundem a exibição de um dado na tela com a devolução real de um valor para o sistema. Nesta leitura, você descobrirá por que esse comando é capaz de interromper a execução de uma função e como ele permite que seu código seja muito mais eficiente e organizado.
O que é o comando return e qual sua função real?
Em Python, o comando return é uma instrução utilizada dentro de funções para enviar um valor de volta para quem a chamou. Imagine que uma função é como um prestador de serviço: você entrega os materiais (parâmetros), ele executa o trabalho e, ao final, te entrega o produto pronto. Esse “entrega do produto” é o papel do return.
Sem o return, a função executa suas tarefas, mas não “guarda” o resultado para uso posterior. Se você quer calcular um valor e depois usá-lo para alimentar um conversor de moedas, por exemplo, o resultado do cálculo precisa ser retornado para que a próxima etapa do código consiga lê-lo.
Por que o seu código para quando encontra um return?
Uma das dúvidas mais comuns de quem está aprendendo a lógica de programação com Python é o motivo de as linhas de código abaixo do return serem ignoradas. A resposta é simples: o return possui uma função dual. Ele não apenas devolve um valor, mas também encerra imediatamente a execução da função atual.
Quando o interpretador do Python encontra a palavra-chave return, ele empacota o valor especificado e sai da função, voltando para o ponto principal do programa. Qualquer código escrito dentro daquela mesma função, mas após o return, é considerado “código morto” (unreachable code), pois nunca será executado. Isso é extremamente útil para criar condições de saída, evitando que o programa processe dados desnecessários se um erro for detectado precocemente.
A diferença crucial entre print() e return
Este é o erro número um de quem está começando. O print() serve apenas para mostrar algo ao usuário no terminal. Ele não “dá” o valor para o programa. Já o return torna o valor disponível para ser armazenado em uma variável ou passado para outra função.
def soma_com_print(a, b):
print(a + b)
def soma_com_return(a, b):
return a + b
# Tentando usar o resultado
resultado1 = soma_com_print(5, 5) # Aparece 10 na tela, mas resultado1 é None
resultado2 = soma_com_return(5, 5) # Não aparece nada na tela, mas resultado2 vale 10
print(resultado2 * 2) # Saída: 20Se você estiver desenvolvendo algo como um gerenciador de senhas simples, precisará do valor retornado para verificar se a senha está correta, e não apenas imprimi-la no console.
Como retornar múltiplos valores no Python
Diferente de algumas linguagens mais rígidas como Java ou C++, o Python facilita muito a devolução de vários dados ao mesmo tempo. Ao separar valores por vírgulas após o return, o Python automaticamente os agrupa em uma estrutura chamada tupla.
def calcular_estatisticas(lista_numeros):
menor = min(lista_numeros)
maior = max(lista_numeros)
media = sum(lista_numeros) / len(lista_numeros)
return menor, maior, media
minimo, maximo, avg = calcular_estatisticas([10, 20, 30])Essa flexibilidade é essencial ao trabalhar com funções em Python que precisam processar conjuntos de dados complexos de uma só vez. Para aprender mais sobre essa linguagem, consulte a documentação oficial na Python Software Foundation.
O papel do return em estruturas condicionais
O uso estratégico do return dentro de blocos if e else permite que você limpe seu código, eliminando a necessidade de múltiplos níveis de indentação. Essa técnica é chamada de “Guarda” ou “Saída Antecipada”.
Em vez de colocar todo o código dentro de um grande else, você verifica as condições de erro primeiro e usa o return para sair o quanto antes. Veja este exemplo aplicado a um sistema que poderia ser usado para ler senhas de forma segura:
def validar_acesso(usuario, senha):
if not usuario:
return "Usuário inválido"
if len(senha) < 8:
return "Senha muito curta"
# Se chegou aqui, os dados são válidos
return "Acesso permitido"Retornando funções e expressões complexas
No Python, tudo é um objeto. Isso significa que você pode retornar até mesmo outras funções ou classes. Esse conceito é a base de recursos avançados como os decoradores em Python. Além disso, é possível retornar o resultado de expressões lógicas, o que resulta em valores booleanos (True ou False).
Ao entender esse comportamento, você ganha poder para utilizar o return de forma criativa, integrando-o com o operador ternário para escrever funções de uma única linha que são extremamente poderosas e legíveis.
Boas práticas ao usar o return
Para manter seu código profissional, siga algumas diretrizes recomendadas pela comunidade, como as descritas no guia de estilo PEP 8:
- Consistência: Se uma função pode retornar um valor em um ponto, ela deve retornar algo (mesmo que seja None) em todos os pontos de saída possíveis.
- Simplicidade: Evite funções que retornam tipos de dados completamente diferentes (ex: uma hora retorna uma string, outra hora um dicionário), pois isso confunde quem usa seu código.
- Documentação: Sempre use Docstrings para especificar o que sua função retorna.
Se você estiver enfrentando problemas onde sua função parece parar sem motivo, verifique se não há um return acidental dentro de um loop. Um erro comum é colocar o retorno dentro de um for, fazendo com que o loop execute apenas uma única vez e pare.
Exemplos práticos de aplicação
Vamos ver como o return se comporta em um cenário de manipulação de dados, algo muito comum para quem trabalha com análise de dados com pandas e numpy. Imagine que precisamos limpar uma string de preço recebida de um site.
def limpar_preco(texto):
if "R$" in texto:
valor_limpo = texto.replace("R$", "").strip()
return float(valor_limpo)
return 0.0
preco_final = limpar_preco("R$ 150,00".replace(",", "."))
print(f"O valor para cálculo é: {preco_final}")Note que o return permite que transformemos o dado sujo em um número real que pode ser somado, multiplicado ou guardado em um banco de dados.
O que acontece se eu esquecer o return?
Toda função no Python retorna algo. Se você não escrever explicitamente a palavra return, a função retornará automaticamente o valor None. Isso é frequente em funções que realizam ações (como salvar um arquivo) em vez de cálculos. No entanto, tentar realizar operações matemáticas com o resultado de uma função que não tem return causará um erro de tipo (TypeError).
Para entender melhor como lidar com essas ausências de valor, é recomendável estudar sobre o None no Python e como ele impacta o fluxo do seu software.
Perguntas Frequentes
O return pode ser usado fora de uma função?
Não. O uso do return fora de uma função resultará em um erro de sintaxe (SyntaxError). Ele é exclusivo para o escopo de funções.
Posso ter mais de um return na mesma função?
Sim, você pode ter vários. No entanto, apenas o primeiro que for alcançado pelo fluxo de execução será processado, finalizando a função naquele momento.
Qual a diferença entre return e yield?
O return encerra a função e devolve o valor. O yield pausa a função e devolve um valor, permitindo que ela continue de onde parou depois, criando o que chamamos de geradores.
O return interrompe um loop for ou while?
Sim. Se o return estiver dentro de um loop que, por sua vez, está dentro de uma função, ele interromperá tanto o loop quanto a própria função imediatamente.
Posso retornar uma lista ou um dicionário?
Com certeza. O Python permite retornar qualquer tipo de objeto, incluindo listas complexas, dicionários, objetos de classes personalizadas e até outras funções.
É obrigatório colocar parênteses no return?
Não é necessário usar parênteses, como em return (valor). O padrão idiomático do Python é usar apenas return valor.
Como retornar nada de forma explícita?
Você pode usar apenas a palavra return sozinha ou return None. Ambos encerrarão a função e devolverão o valor nulo do Python.
O return aceita expressões lógicas?
Sim, você pode fazer algo como return x > 10. A função avaliará a expressão e retornará True ou False conforme o resultado.
Dominar o comando return é o que separa os amadores dos programadores que escrevem códigos reutilizáveis e limpos. Agora que você entende como ele controla o fluxo e a saída de dados, experimente refatorar seus scripts antigos substituindo print() por retornos lógicos e veja como a estrutura do seu projeto se torna muito mais profissional e fácil de testar.






