Aula 05: Modularização com Funções
Objetivos de Aprendizagem
Ao final desta aula, você deve ser capaz de:
- Definir e chamar funções com
def. - Usar parâmetros e argumentos para tornar funções reutilizáveis.
- Diferenciar função que imprime de função que retorna valor.
- Aplicar noções básicas de escopo local.
- Organizar código em funções curtas e com nomes descritivos.
Conteúdo
1) O que é uma função
Uma função é um bloco de código reutilizável que executa uma tarefa específica.
def saudacao():
print("Olá, turma!")
saudacao()
2) Parâmetros e argumentos
Parâmetros são variáveis declaradas na função. Argumentos são os valores passados na chamada.
def saudacao_nome(nome):
print(f"Olá, {nome}!")
saudacao_nome("Ana")
saudacao_nome("Carlos")
3) Funções com retorno (return)
Use return quando a função precisa entregar um valor para ser usado depois.
def soma(a, b):
return a + b
resultado = soma(10, 7)
print(f"Resultado: {resultado}")
Diferença entre print e return
def mostra_soma(a, b):
print(a + b)
def retorna_soma(a, b):
return a + b
x = mostra_soma(2, 3) # imprime 5, mas x recebe None
y = retorna_soma(2, 3) # y recebe 5
print(x)
print(y)
4) Escopo local (introdução)
Variáveis criadas dentro da função são locais da função.
def exemplo_escopo():
mensagem = "Estou dentro da função"
print(mensagem)
exemplo_escopo()
# print(mensagem) # geraria erro: NameError
5) Boas práticas de modularização
- Dê nomes claros para funções (
calcular_media,validar_idade). - Prefira funções curtas com uma responsabilidade.
- Evite duplicar código: extraia lógica repetida para função.
- Use parâmetros em vez de valores fixos quando possível.
6) Exemplos contextualizados
Exemplo A: cálculo de média com função
def calcular_media(n1, n2, n3):
return (n1 + n2 + n3) / 3
media = calcular_media(8.0, 7.5, 9.0)
print(f"Média: {media:.2f}")
Saída esperada: Média: 8.17
Exemplo B: mensagem de aprovação
def aprovado(media):
return media >= 6
resultado = aprovado(5.9)
print(f"Aprovado? {resultado}")
Saída esperada: Aprovado? False
Exercícios (checkpoints)
- Crie uma função
dobro(numero)que retorna o dobro do valor recebido.- Critério de verificação: para
dobro(7), o resultado deve ser14.
- Critério de verificação: para
- Escreva uma função
saudar(nome)que imprime uma saudação personalizada.- Critério de verificação: para
saudar("Lia"), a saída deve conterLia.
- Critério de verificação: para
- Crie uma função
media(n1, n2)comreturn.- Critério de verificação: para
media(8, 6), o resultado deve ser7.0.
- Critério de verificação: para
- Reescreva um trecho repetido do seu código anterior usando função.
- Critério de verificação: o comportamento final deve permanecer igual.
- Faça uma função
pode_votar(idade)que retornaTrueseidade >= 16.- Critério de verificação: para
15, deve retornarFalse.
- Critério de verificação: para
- Crie uma função que receba preço e desconto percentual e retorne o preço final.
- Critério de verificação: para
100e10, o resultado deve ser90.
- Critério de verificação: para
Referências
Principais
- Python Docs — Defining Functions: https://docs.python.org/3/tutorial/controlflow.html#defining-functions
- Python Docs — More on Defining Functions: https://docs.python.org/3/tutorial/controlflow.html#more-on-defining-functions
Aprofundamento
- Real Python — Defining Your Own Python Function: https://realpython.com/defining-your-own-python-function/
- Real Python — Python Scope: https://realpython.com/python-scope-legb-rule/