Pular para o conteúdo

Como retornar valores de uma função em Python?

[

O comando return em Python: Uso e Melhores Práticas

O comando return é um componente fundamental de funções e métodos em Python. Ele permite que você envie objetos Python de volta para o código que chamou a função. Esses objetos são conhecidos como o valor de retorno da função e podem ser utilizados para realizar mais computações em seus programas.

Usar o comando return de forma eficiente é uma habilidade fundamental se você deseja escrever funções personalizadas que sejam Pythonicas e robustas.

Neste tutorial, você aprenderá:

  • Como usar o comando return em suas funções Python
  • Como retornar valores únicos ou múltiplos de suas funções
  • Quais são as melhores práticas ao utilizar o comando return

Começando com Funções Python

A maioria das linguagens de programação permite que você atribua um nome a um bloco de código que realiza uma determinada computação. Esses blocos de código nomeados podem ser reutilizados rapidamente, pois o nome deles pode ser utilizado para chamá-los de diferentes partes do seu código.

Programadores chamam esses blocos de código nomeados de subsrotinas, rotinas, procedimentos ou funções dependendo da linguagem.

Em Python, as funções são definidas usando a palavra-chave def, seguida pelo nome da função e um par de parênteses. O bloco de código que define a função é indentado logo abaixo.

Por exemplo, aqui está uma função simples que retorna a soma de dois números:

def soma(a, b):
return a + b

Neste exemplo, a função soma aceita dois argumentos (a e b), os soma e retorna o resultado usando o comando return.

Entendendo o comando return em Python

O comando return é usado para especificar o valor de retorno de uma função. Ele interrompe a execução da função e retorna o valor especificado de volta ao código que chamou a função.

Existem duas formas de usar o comando return em Python:

Declarações de retorno explícitas

Uma declaração de retorno explícita é usada quando você deseja especificar um valor de retorno específico para uma função. Você pode usar a palavra-chave return seguida pelo valor que deseja retornar.

Aqui está um exemplo:

def multiplicacao(a, b):
resultado = a * b
return resultado

Neste exemplo, a função multiplicacao aceita dois argumentos (a e b), multiplica-os e armazena o resultado na variável resultado. Em seguida, ela retorna o valor de resultado usando a declaração return.

Declarações de retorno implícitas

Uma declaração de retorno implícita é usada quando você deseja que a função retorne automaticamente um valor, sem especificar um comando return. Isso acontece quando a função chega ao final do seu bloco de código.

Aqui está um exemplo:

def saudacao(nome):
mensagem = "Olá, " + nome + "!"
print(mensagem)

Neste exemplo, a função saudacao aceita um argumento nome e concatena-o com a string “Olá, ” para criar uma mensagem de saudação. Em seguida, ele imprime a mensagem, mas não contém um comando return. Portanto, ao chamar essa função, nenhum valor será retornado.

Retornando vs Imprimindo

É importante compreender a diferença entre retornar um valor e imprimir um valor em Python. Retornar um valor significa que você está enviando o valor de volta ao código que chamou a função, para que ele possa ser usado em outras operações ou atribuído a uma variável. Por outro lado, imprimir um valor significa que você está exibindo o valor na saída do console, mas o valor não está disponível para ser usado em outras operações.

Ao escrever funções em Python, você deve pensar cuidadosamente sobre se deseja retornar valores ou simplesmente imprimi-los. Dependendo do caso de uso, cada abordagem pode ser apropriada.

Retornando Múltiplos Valores

Em Python, você pode retornar não apenas um, mas vários valores a partir de uma função. Isso é útil quando você precisa de uma função para calcular e retornar várias informações relacionadas. Para retornar múltiplos valores, você pode simplesmente separá-los com uma vírgula após a palavra-chave return.

Aqui está um exemplo:

def converter_temperatura(celsius):
fahrenheit = (celsius * 9/5) + 32
kelvin = celsius + 273.15
return fahrenheit, kelvin

Neste exemplo, a função converter_temperatura aceita um argumento celsius e converte-o em Fahrenheit e Kelvin. Em seguida, ela retorna os dois valores usando a declaração return.

Ao chamar essa função, você pode armazenar os valores de retorno em duas variáveis separadas:

temp_fahrenheit, temp_kelvin = converter_temperatura(25)
print(temp_fahrenheit) # Output: 77.0
print(temp_kelvin) # Output: 298.15

Neste exemplo, os valores de retorno da função converter_temperatura são armazenados nas variáveis temp_fahrenheit e temp_kelvin, respectivamente. Esses valores são então impressos na saída do console.

Melhores Práticas ao Usar o Comando return

Ao usar o comando return em suas funções Python, há algumas melhores práticas que você deve observar:

Retorne None explicitamente

Em Python, None é um objeto especial que representa a ausência de um valor. Se uma função não tiver um valor significativo para retornar, você deve usar a palavra-chave return seguida por None para indicar isso explicitamente.

def funcao_vazia():
return None

Retornar None em uma função vazia é uma forma clara de comunicar que a função não tem um valor de retorno relevante.

Lembre-se do Valor de Retorno

Quando uma função retorna um valor, é importante lembrar de capturar esse valor e atribuí-lo a uma variável se você planeja usá-lo posteriormente em seu código. Caso contrário, o valor retornado será perdido.

def calcular_quadrado(numero):
return numero ** 2
quadrado = calcular_quadrado(5)
print(quadrado) # Output: 25

Neste exemplo, o valor retornado pela função calcular_quadrado é atribuído à variável quadrado antes de ser impresso na saída do console.

Evite Expressões Complexas

Ao usar o comando return, é uma boa prática evitar retornar expressões complexas. Isso torna sua função mais legível e mais fácil de entender. Em vez disso, você pode armazenar o resultado da expressão em uma variável e retornar essa variável.

def calcular_media(numeros):
total = sum(numeros)
quantidade = len(numeros)
media = total / quantidade
return media

Neste exemplo, a função calcular_media recebe uma lista de números e retorna a média deles. Em vez de retornar a expressão sum(numeros) / len(numeros) diretamente, a expressão é armazenada na variável media para maior legibilidade.

Retorne Valores vs Modificar Variáveis Globais

Uma função pode modificar variáveis globais, mas isso pode levar a resultados inesperados e dificultar a manutenção do código. Em vez disso, é uma prática recomendada retornar um valor da função e atribuí-lo a uma variável global, se necessário.

valor_global = 0
def incrementar_valor():
global valor_global
valor_global += 1
return valor_global
incrementar_valor()
print(valor_global) # Output: 1

Neste exemplo, a função incrementar_valor incrementa a variável global valor_global em 1 e retorna o novo valor. Em seguida, o valor global é impresso na saída do console.

Use o return com Condicionais

Você pode usar o comando return com condicionais para controlar o fluxo de execução da sua função. O comando return encerra a função imediatamente e retorna o valor especificado. Isso é útil quando você precisa retornar um valor com base em uma condição específica.

def verificar_paridade(numero):
if numero % 2 == 0:
return True
else:
return False

Neste exemplo, a função verificar_paridade verifica se um número é par ou ímpar. Se o número for par, ela retorna True, caso contrário, retorna False.

Use Short-Circuiting em Loops

Você também pode usar o comando return em loops para interromper a execução da função mais cedo, se uma determinada condição for atendida. Isso é conhecido como short-circuiting e pode ajudar a melhorar o desempenho do seu código, evitando a execução desnecessária de iterações.

def buscar_elemento(lista, item):
for elemento in lista:
if elemento == item:
return True
return False

Neste exemplo, a função buscar_elemento recebe uma lista e um item e verifica se o item está presente na lista. Se o item for encontrado, ela retorna True, caso contrário, retorna False. Note que o comando return interrompe o loop imediatamente quando o item é encontrado.

Reconheça Código Morto

Ao escrever funções em Python, é importante estar ciente de código morto, que é qualquer linha de código que nunca é executada devido à presença de um comando return anterior. O código morto pode tornar seu código mais difícil de entender e manter. Certifique-se de remover ou ajustar corretamente qualquer código morto em suas funções.

Retornando Múltiplos Objetos Nomeados

Além de retornar valores simples ou múltiplos, você também pode retornar vários objetos nomeados em Python. Essa abordagem é útil quando você deseja retornar várias informações relacionadas de uma função.

def obter_pessoa():
nome = "João"
idade = 30
cidade = "São Paulo"
return {"nome": nome, "idade": idade, "cidade": cidade}

Neste exemplo, a função obter_pessoa retorna um dicionário com informações sobre uma pessoa. Os objetos são retornados com seus respectivos nomes para fácil acesso.

Conclusão

O comando return é uma parte essencial da programação em Python. Ele permite que você retorne valores de funções, que podem ser usados em outras partes do seu código. Neste tutorial, você aprendeu como usar o comando return para retornar valores únicos ou múltiplos, bem como algumas melhores práticas ao usá-lo.

Agora que você entende o comando return, você será capaz de escrever funções Python mais concisas, legíveis e eficientes. Lembre-se de praticar o seu conhecimento com exemplos de código e experimentar diferentes casos de uso para aprimorar suas habilidades em Python.

Assim, você estará preparado para desenvolver programas mais avançados e alcançar um maior domínio da linguagem Python.