Retorno de funções
Objetivos da aula
- Compreender o que a instrução
returnfaz. - 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, a função termina imediatamente. Os comandos colocados
depois dele, dentro do mesmo caminho de execução, não são executados.
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
returnencerra 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
- Crie uma função que receba um número e retorne seu triplo.
- Crie uma função que receba duas notas e retorne a média.
- Crie uma função que retorne o menor e o maior entre dois números.
- Crie uma função que retorne
"par"ou"ímpar".
Exemplo passo a passo (simples)
- A função recebe um número.
- O número é multiplicado por três.
returndevolve o resultado.- A variável
resultadorecebe e armazena o valor15.
Exemplo passo a passo (mais completo)
- A função recebe a temperatura pelo parâmetro
celsius. - O cálculo é armazenado na variável local
fahrenheit. returnenvia o resultado para o local da chamada.- A variável
temperaturarecebe o valor retornado. - O programa formata e exibe o resultado.