As funções em Python são uma das ferramentas mais poderosas e úteis da linguagem. Elas ajudam a organizar o código, evitar repetições e facilitar a manutenção de programas. Neste artigo, vamos explicar tudo o que você precisa saber para criar e usar funções em Python, mesmo que esteja começando do zero.
O Que São Funções?
Funções são blocos de código que executam uma tarefa específica. Você pode usá-las várias vezes no programa sem precisar escrever tudo de novo. Isso deixa o código mais limpo e fácil de entender.
Por Que Usar Funções?
- Organizam o código em partes menores
- Permitem reuso de código
- Facilitam testes e correções
- Ajudam a dividir um problema em partes menores
Vamos ver como isso funciona na prática.
Como Criar Funções em Python
Para criar uma função, usamos a palavra-chave def
. Ela vem da palavra “define” (definir, em inglês).
Estrutura Básica de uma Função
def nome_da_funcao():
# código que a função vai executar
Exemplo Simples
def diga_ola():
print("Olá, tudo bem?")
Para usar (ou “chamar”) essa função, escrevemos:
diga_ola()
A saída será:
Olá, tudo bem?
Parâmetros: Enviando Dados para a Função
Às vezes, queremos que a função use dados diferentes. Para isso, usamos parâmetros.
Exemplo com Parâmetro
def saudacao(nome):
print(f"Olá, {nome}!")
Chamando a função com um nome:
saudacao("Ana")
Saída:
Olá, Ana!
Você pode usar quantos parâmetros precisar:
def apresentar(nome, idade):
print(f"Meu nome é {nome} e tenho {idade} anos.")
Retorno de Dados com return
Funções também podem devolver um resultado. Isso é feito com a palavra-chave return
.
Exemplo com Retorno
def soma(a, b):
return a + b
resultado = soma(5, 3)
print(resultado)
Saída:
8
O return
encerra a função e devolve o valor.
Diferença Entre print()
e return
Ação | print() | return |
---|---|---|
O que faz? | Mostra na tela | Devolve um valor para ser usado |
Quando usar? | Para exibir resultados | Quando precisar usar o valor depois |
Exemplo Comparativo
def exemplo_print():
print("Resultado com print")
def exemplo_return():
return "Resultado com return"
exemplo_print()
print(exemplo_return())
Parâmetros Opcionais (Com Valor Padrão)
Você pode definir um valor padrão para um parâmetro.
def saudacao(nome="visitante"):
print(f"Olá, {nome}!")
Chamadas possíveis:
saudacao("Maria")
saudacao()
Saída:
Olá, Maria!
Olá, visitante!
Funções com Múltiplos Retornos
Você pode devolver mais de um valor com return
.
def operacoes(a, b):
return a + b, a - b
soma, subtracao = operacoes(10, 5)
print(soma, subtracao)
Funções Dentro de Funções
É possível definir uma função dentro de outra.
def externa():
def interna():
print("Sou a função interna.")
interna()
Isso é útil para organizar melhor blocos de código menores que só fazem sentido dentro de uma função maior.
Boas Práticas com Funções
- Dê nomes claros e descritivos (ex:
calcula_media
,valida_email
) - Faça uma coisa por função
- Evite funções muito longas
- Comente o que cada função faz, se necessário
Funções Anônimas (Lambda)
Às vezes, precisamos de funções muito simples, de apenas uma linha. Para isso, usamos lambda.
Exemplo
dobro = lambda x: x * 2
print(dobro(4)) # Saída: 8
Essas funções são úteis em códigos curtos ou quando usadas junto com funções como map()
ou filter()
.
Exemplos Práticos com Funções
1. Calculadora Simples
def calculadora(a, b, operacao):
if operacao == "soma":
return a + b
elif operacao == "subtracao":
return a - b
elif operacao == "multiplicacao":
return a * b
elif operacao == "divisao":
return a / b
else:
return "Operação inválida"
2. Verificação de Número Par
def eh_par(numero):
return numero % 2 == 0
Parâmetros Especiais: *args e **kwargs
*args
(Argumentos Posicionais)
Permite passar vários valores sem saber a quantidade.
def soma_todos(*numeros):
return sum(numeros)
print(soma_todos(1, 2, 3, 4)) # Saída: 10
**kwargs
(Argumentos Nomeados)
Permite passar vários pares chave=valor.
def exibe_dados(**dados):
for chave, valor in dados.items():
print(f"{chave}: {valor}")
exibe_dados(nome="João", idade=30)
Escopo de Variáveis
Escopo é o local onde a variável existe.
- Global: fora de qualquer função
- Local: dentro de uma função
nome = "João" # escopo global
def exibe_nome():
nome = "Maria" # escopo local
print(nome)
exibe_nome()
print(nome)
Saída:
Maria
João
Recursão: Funções Que Chamam a Si Mesmas
Recursão é quando uma função chama ela mesma. É útil em alguns casos, como calcular fatorial.
def fatorial(n):
if n == 0:
return 1
else:
return n * fatorial(n - 1)
Onde Usar Funções no Dia a Dia
Você pode usar funções para:
- Calcular descontos
- Validar senhas
- Organizar cadastros
- Separar lógica em projetos maiores
Exemplo de Cadastro Simples
def cadastrar_usuario(nome, email):
print(f"Usuário {nome} cadastrado com e-mail {email}")
Conclusão
As funções em Python são fundamentais para qualquer projeto, seja pequeno ou grande. Elas tornam o código mais limpo, organizado e fácil de manter. Saber como criar, usar e combinar funções vai ajudar você a evoluir como programador.
Comece com funções simples. Com o tempo, use parâmetros, retornos, e boas práticas. Logo, você estará escrevendo programas muito mais eficientes e profissionais.