return versus print
Objetivo da aula
Distinguir produzir um valor de apenas exibi-lo.
Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.
Começando do zero
print() mostra uma representação para alguém; return devolve um valor para quem chamou a função. Essa diferença é fundamental. Se outra parte do programa precisa usar o resultado em um cálculo, a função deve normalmente retornar o valor, não apenas imprimi-lo.
Uma imagem mental para entender
Pense em uma calculadora. Apertar “=” faz a calculadora produzir um resultado que você pode usar em outra conta. Já escrever o número em um cartaz apenas exibe a informação. return entrega; print exibe.
Conceitos essenciais, sem pular etapas
return
Encerra a função naquele ponto e envia um valor de volta à expressão que fez a chamada.
print()
É um efeito de saída. Seu objetivo é mostrar algo; o retorno normal de print() é None.
Composição
Funções que retornam valores podem ser combinadas: o resultado de uma pode virar argumento de outra ou participar de cálculos.
Separação de regra e interface
Uma função de cálculo pode retornar o valor; outra parte decide se mostra no terminal, salva em arquivo ou envia para uma interface gráfica.
Modelo mental
FUNÇÃO → CALCULA → return VALOR → CHAMADOR USA VALOR → INTERFACE PODE EXIBIR
Exemplo 1 — primeiro veja o programa inteiro
def calcular_total(quantidade, preco):
return quantidade * preco
total = calcular_total(3, 12.50)
frete = 8.00
total_com_frete = total + frete
print(f"Total final: R$ {total_com_frete:.2f}")
Agora vamos ler linha por linha
- A função calcula e retorna o número 37.5.
- A chamada inteira
calcular_total(...)se comporta como uma expressão que produz esse valor. - O programa consegue somar frete porque possui o resultado numérico.
- Só no final usamos
print()para apresentar a mensagem.
Saída esperada
Total final: R$ 45.50
Exemplo 2 — o mesmo conceito em outra situação
def mostrar_total(quantidade, preco):
print(quantidade * preco)
resultado = mostrar_total(3, 10)
print("Retorno recebido:", resultado)
A função mostra 30, mas não possui return explícito. Por isso a variável resultado recebe None. Esse exemplo deixa clara a diferença entre “ver algo na tela” e “receber um valor”.
Experimento guiado
Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.
- Execute os dois exemplos e observe a variável que recebe o retorno.
- Troque uma função que imprime um cálculo por uma função que retorna o cálculo.
- Use o valor retornado em outra operação.
- Pergunte: “quem precisa desse resultado depois?” antes de decidir entre retorno e exibição.
Mini desafio
Crie calcular_dobro(numero) que retorne o dobro. Chame-a, some 5 ao resultado e só então mostre a resposta.
Solução comentada
def calcular_dobro(numero):
return numero * 2
resultado = calcular_dobro(7)
resultado_final = resultado + 5
print(resultado_final)
Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.
Erros comuns e por que acontecem
- Achar que
print()“devolve” o valor mostrado. - Colocar
returncedo demais e tornar linhas posteriores inalcançáveis naquela execução da função. - Misturar cálculo e apresentação em todas as funções, dificultando reutilização.
- Ignorar que uma função sem
returnexplícito retornaNone.
Cheque se você realmente entendeu
Qual a diferença central?
Resposta: return entrega um valor ao chamador; print() exibe uma saída.
O que uma função sem return explícito retorna?
Resposta: None.
Por que retornar valores favorece reutilização?
Resposta: Porque outras partes do programa podem compor, testar, salvar ou apresentar o resultado de maneiras diferentes.
Resumo em linguagem simples
Nesta aula, o ponto central foi return versus print. Tente explicar o modelo FUNÇÃO → CALCULA → return VALOR → CHAMADOR USA VALOR → INTERFACE PODE EXIBIR sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.
Conexão com a próxima aula
Na próxima aula, Escopo e variáveis locais, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.