return versus print

Distinguir produzir um valor de apenas exibi-lo.

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.

  1. Execute os dois exemplos e observe a variável que recebe o retorno.
  2. Troque uma função que imprime um cálculo por uma função que retorna o cálculo.
  3. Use o valor retornado em outra operação.
  4. 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 return cedo 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 return explícito retorna None.

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.