Retorno de funções

Objetivos da aula

  • Compreender o que a instrução return faz.
  • Diferenciar retornar um valor de apenas exibi-lo com print().
  • Armazenar e reutilizar os resultados produzidos por funções.
  • Retornar mais de um valor e usar retornos antecipados.

Por que isso importa?

Quando uma função retorna um resultado, outras partes do programa podem armazená-lo, testá-lo e utilizá-lo em novos cálculos. Isso torna o código mais reutilizável e fácil de organizar.

O que é return?

A instrução return encerra a execução da função e envia um valor de volta ao local em que ela foi chamada. Esse valor pode ser guardado em uma variável ou usado diretamente em uma expressão.

Na chamada somar(8, 5), os argumentos são recebidos pelos parâmetros a e b. A função calcula o resultado e o devolve. Em seguida, o valor 13 é armazenado na variável total.

return não é print()

print() apenas mostra uma informação na tela. Já return entrega um valor para quem chamou a função. Por isso, um valor retornado pode participar de outros cálculos.

Em geral, uma função de cálculo deve retornar o resultado. Assim, quem chama a função decide se deseja exibi-lo, armazená-lo ou usá-lo em outra operação.

Exemplos de funções com retorno

Uma função pode retornar diferentes tipos de dados. Nos exemplos a seguir, cada função recebe informações, realiza uma tarefa e devolve um resultado para o programa.

Retornando um número

A função recebe a base e a altura, calcula a área e retorna um valor numérico.

Retornando uma string

Nesse caso, o valor devolvido é uma string, que pode ser armazenada e exibida posteriormente.

Retornando um valor lógico

A expressão numero % 2 == 0 produz True ou False. Assim, o retorno da função pode ser usado diretamente como condição de um if.

Retornando um valor de acordo com uma condição

A função possui dois possíveis retornos. Apenas o return correspondente à condição encontrada será executado.

Função sem parâmetros e com retorno

Nem toda função precisa receber parâmetros. Mesmo sem entradas, ela pode produzir e retornar um valor.

Usando o retorno em expressões

Não é obrigatório criar uma variável para receber o retorno. A chamada da função pode ser usada onde um valor do mesmo tipo seria aceito:

Funções sem retorno explícito

Se uma função termina sem executar um return, Python retorna automaticamente None. Esse valor representa a ausência de um resultado.

Escrever apenas return, sem informar um valor, também faz a função devolver None.

Retorno antecipado

Uma função pode possuir mais de um return. Condições diferentes podem encerrar a função com resultados diferentes. Essa técnica é chamada de retorno antecipado.

Se o divisor for zero, a primeira instrução return encerra a função. Caso contrário, a execução continua e a divisão é retornada.

Retornando vários valores

Uma função pode retornar vários valores separados por vírgulas. Python reúne esses valores em uma tupla, que pode ser desempacotada em diferentes variáveis.

Também é possível receber tudo em uma única variável. Nesse caso, ela armazenará a tupla completa:

Combinando funções

O retorno de uma função pode ser passado como argumento para outra. Essa composição permite construir soluções maiores a partir de funções pequenas.

Resumo rápido

  • return encerra a função e devolve um resultado.
  • print() exibe um valor, mas não o devolve.
  • Uma função sem retorno explícito devolve None.
  • Vários valores separados por vírgula são retornados como uma tupla.
  • O retorno de uma função pode ser usado por outras funções e expressões.

Pratique

  1. Crie uma função que receba um número e retorne seu triplo.
  2. Crie uma função que receba duas notas e retorne a média.
  3. Crie uma função que retorne o menor e o maior entre dois números.
  4. Crie uma função que retorne "par" ou "ímpar".

Exemplo passo a passo (simples)

  1. A função recebe um número.
  2. O número é multiplicado por três.
  3. return devolve o resultado.
  4. A variável resultado recebe e armazena o valor 15.

Exemplo passo a passo (mais completo)

  1. A função recebe a temperatura pelo parâmetro celsius.
  2. O cálculo é armazenado na variável local fahrenheit.
  3. return envia o resultado para o local da chamada.
  4. A variável temperatura recebe o valor retornado.
  5. O programa formata e exibe o resultado.