Pular para o conteúdo

O que o return faz em Python: explicação detalhada

[

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

O comando return é um componente fundamental das 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 usados para realizar mais cálculos em seus programas.

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

Neste tutorial, você aprenderá:

  • Como usar o comando return em suas funções em Python
  • Como retornar valores únicos ou múltiplos de suas funções
  • Melhores práticas para observar ao usar comandos return

Primeiros Passos com Funções em 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 facilmente, pois você pode usar o nome deles para chamá-los de diferentes partes do seu código.

Programadores chamam esses blocos de código nomeados de sub-rotinas, rotinas, procedimentos ou funções, dependendo da linguagem. Em Python, você pode criar funções definindo-as usando a palavra-chave def. Aqui está um exemplo simples de uma função em Python que adiciona dois números:

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

Aqui, a função adicionar recebe dois argumentos a e b e retorna a soma deles. Podemos chamar essa função usando o comando print para exibir o resultado:

resultado = adicionar(2, 3)
print(resultado) # Saída: 5

O comando return é usado para retornar o valor de uma função. Quando a função é chamada, o valor retornado pode então ser atribuído a uma variável ou usado de qualquer outra maneira desejada.

Entendendo o Comando return em Python

O comando return permite que uma função envie um valor de volta para o código que chamou a função. Isso é particularmente útil quando você deseja usar o resultado de uma função em outra parte do seu programa.

Existem dois tipos principais de declarações de retorno em Python: explícitas e implícitas.

Retornos Explícitos

Em algumas situações, você pode querer retornar explicitamente um valor específico de uma função. Para fazer isso, você simplesmente usa o comando return seguido pelo valor desejado.

Aqui está um exemplo de uma função que verifica se um número é par ou ímpar e retorna um valor booleano:

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

Neste exemplo, se o número fornecido for divisível por 2, a função retorna True. Caso contrário, ela retorna False.

Retornos Implícitos

Em alguns casos, o comando return não precisa ser seguido por um valor específico. Isso é conhecido como um retorno implícito ou retorno vazio. Em vez de retornar um valor específico, a função simplesmente sai e retorna None.

Aqui está um exemplo de uma função que imprime uma mensagem de saudação sem retornar nenhum valor:

def imprimir_saudacao(nome):
print(f"Olá, {nome}!")
# Chamando a função
imprimir_saudacao("Maria") # Saída: Olá, Maria!

Neste exemplo, a função não possui uma declaração de retorno. Em vez disso, ela simplesmente executa a ação desejada de imprimir a saudação. Ao chamar a função, a saudação é impressa na saída, mas nenhum valor é retornado.

Retornando vs Imprimindo

Você pode estar se perguntando qual é a diferença entre retornar um valor de uma função e imprimi-lo. No Python, retornar um valor significa que a função está enviando esse valor de volta para o código que a chamou. O valor retornado pode ser armazenado em uma variável ou usado em operações futuras.

Por outro lado, imprimir um valor significa que você está exibindo esse valor na saída do programa para que possa ser visualizado. A impressão por si só não envia o valor de volta para o código que chamou a função.

Aqui está um exemplo que demonstra a diferença:

def somar(a, b):
return a + b
def imprimir_soma(a, b):
print(a + b)
resultado = somar(2, 3)
print(resultado) # Saída: 5
imprimir_soma(2, 3) # Saída: 5

Na função somar, o valor da soma de a e b é retornado usando o comando return. O resultado é armazenado na variável resultado e também é impresso na saída. Na função imprimir_soma, a soma é calculada e impressa diretamente sem retornar o valor.

Retornando Múltiplos Valores

Além de retornar um único valor, as funções em Python também podem retornar múltiplos valores como resultado. Para fazer isso, você simplesmente separa os valores com uma vírgula ao usar o comando return.

Aqui está um exemplo de uma função que retorna o mínimo e o máximo de uma lista de números:

def encontrar_min_max(numeros):
minimo = min(numeros)
maximo = max(numeros)
return minimo, maximo
numeros = [1, 2, 3, 4, 5]
minimo, maximo = encontrar_min_max(numeros)
print(f"Valor mínimo: {minimo}") # Saída: Valor mínimo: 1
print(f"Valor máximo: {maximo}") # Saída: Valor máximo: 5

Neste exemplo, a função encontrar_min_max retorna dois valores: o valor mínimo e o valor máximo da lista de números fornecida. Ao chamar a função, os valores são atribuídos às variáveis minimo e maximo e posteriormente são impressos na saída.

Melhores Práticas ao Usar o Comando return

Ao usar o comando return em suas funções Python, é importante seguir algumas melhores práticas para garantir que seu código seja legível, fácil de manter e livre de erros. Aqui estão algumas práticas recomendadas:

Retornando None Explicitamente

Em algumas situações, pode ser necessário que uma função retorne um valor nulo ou vazio. Em Python, esse valor é representado pelo objeto None. Ao retornar um valor nulo, é uma boa prática retornar explicitamente None para deixar claro que a função não retorna nenhum valor significativo. Isso pode ajudar na legibilidade e compreensão do código.

def funcao_exemplo():
# Faz algo, mas não retorna um valor significativo
return None

Lembrando do Valor de Retorno

Ao usar o resultado de uma função que retorna um valor, é importante lembrar de atribuir o valor retornado a uma variável. Não atribuir ou ignorar o valor de retorno de uma função pode levar a erros e comportamentos inesperados em seu código.

def multiplicar(a, b):
return a * b
resultado = multiplicar(2, 3) # Correto: o valor de retorno é atribuído à variável resultado
multiplicar(2, 3) # Incorreto: o valor de retorno é ignorado

Evitando Expressões Complexas

Ao usar o comando return, evite retornar expressões muito complexas ou longas. Isso pode tornar o código difícil de entender e depurar. Se você tiver uma expressão complexa que precisa ser retornada, é recomendado quebrá-la em etapas menores e atribuir os resultados intermediários a variáveis antes de retornar.

Retornando Valores vs Modificando Variáveis Globais

Quando uma função precisa modificar uma variável global em vez de retornar um valor, isso pode ser uma prática arriscada. Modificar variáveis globais dentro de funções pode tornar o código mais difícil de ler e depurar, já que o escopo das variáveis globais se estende por todo o programa.

Em vez disso, é recomendado retornar valores da função e atribuir esses valores a variáveis globais no código que chamou a função. Isso tornará seu código mais fácil de entender e depurar.

Usando return com Condicionais

Em algumas situações, você pode querer usar o comando return junto com condicionais para interromper a execução da função em pontos específicos. O comando return irá imediatamente interromper a função e retornar o valor especificado.

def verificar_numero(valor):
if valor > 100:
return "Maior que 100"
elif valor < 0:
return "Menor que 0"
else:
return "Entre 0 e 100"
resultado = verificar_numero(50)
print(resultado) # Saída: Entre 0 e 100

Neste exemplo, a função verificar_numero retorna diferentes mensagens dependendo do valor passado como argumento. Observe que o comando return é usado para interromper a função e retornar o valor correspondente.

Retornando Verdadeiro ou Falso

Quando uma função precisa retornar um valor booleano, como Verdadeiro (True) ou Falso (False), é uma boa prática retornar diretamente o valor booleano em vez de usar uma condição de retorno.

def verificar_paridade(numero):
return numero % 2 == 0

Neste exemplo, a função verificar_paridade retorna Verdadeiro se o número fornecido for par, e Falso caso contrário.

Interrompendo Loops Prematuramente

Em algumas situações, você pode querer interromper um loop prematuramente dentro de uma função e retornar um valor específico. Nesse caso, você pode usar o comando return para sair imediatamente do loop e retornar o valor desejado.

def encontrar_valor(lista, valor):
for item in lista:
if item == valor:
return True
return False

Neste exemplo, a função encontrar_valor verifica se um valor específico está presente em uma lista. Se o valor for encontrado, o comando return é usado para interromper o loop e retornar Verdadeiro. Caso contrário, o loop é concluído e o retorno é Falso.

Reconhecendo Código Morto

Ao usar o comando return, é importante prestar atenção aos trechos de código que estão “mortos”, ou seja, que não serão executados devido a um return anterior. Identificar e remover o código morto é uma boa prática que pode tornar seu código mais limpo e legível.

def verificar_numero(numero):
if numero > 0:
return "Maior que zero"
elif numero < 0:
return "Menor que zero"
else:
return "Zero"
print("Esse código nunca será executado")

Neste exemplo, o print dentro da declaração else nunca será executado, pois a função será interrompida e retornará o valor “Zero” antes de chegar a esse ponto.

Retornando Múltiplos Objetos Nomeados

Python permite que você retorne múltiplos objetos em uma única declaração de retorno, usando uma estrutura chamada “packing” e “unpacking”. Você pode atribuir nomes aos objetos retornados para facilitar o acesso aos mesmos.

def obter_usuario():
nome = "Maria"
idade = 30
cidade = "São Paulo"
return nome, idade, cidade
usuario_nome, usuario_idade, usuario_cidade = obter_usuario()
print(usuario_nome) # Saída: Maria
print(usuario_idade) # Saída: 30
print(usuario_cidade) # Saída: São Paulo

Neste exemplo, a função obter_usuario retorna três objetos: nome, idade e cidade. Esses objetos são atribuídos a variáveis com nomes correspondentes ao chamar a função.

Conclusão

O comando return é uma parte essencial das funções em Python e permite que você envie valores de volta para o código que chamou a função. Ao usar o comando return de forma eficaz e seguir as melhores práticas recomendadas, você pode escrever funções Python mais legíveis, manejáveis e concisas.

Neste tutorial, você aprendeu como usar o comando return em Python, como retornar valores únicos ou múltiplos, bem como algumas melhores práticas para observar ao usar o comando return. Com esse conhecimento, você está pronto para criar suas próprias funções Python e aproveitar ao máximo o retorno de valores em suas implementações.

Python Tricks Dictionary Merge