Vídeo em breve
Por enquanto, esta aula está disponível só em texto — o vídeo entra assim que ficar pronto.
Funções
Definindo funções
Organizando código em blocos reutilizáveis com def, parâmetros, valores de retorno e parâmetros padrão. · 15 min
Repare que, até aqui, quando você precisava fazer a mesma conta duas vezes, copiava e colava o código. Uma função é um bloco de código com nome que você pode chamar quantas vezes quiser — a ferramenta nº 1 para não repetir código.
Criando e chamando uma função
def saudacao(nome):
print(f"Olá, {nome}!")
saudacao("Ada") # Olá, Ada!
saudacao("Grace") # Olá, Grace!
nome aqui é um parâmetro: um valor que a função recebe de fora. Cada
vez que você chama saudacao(...), o texto entre parênteses vira o nome
usado dentro da função.
Devolvendo um valor com return
print() só mostra algo na tela; não devolve nada para ser usado depois.
Para uma função “devolver” um resultado que o resto do programa pode usar,
use return:
def dobro(numero):
return numero * 2
resultado = dobro(21)
print(resultado) # 42
Atenção
return encerra a função imediatamente — qualquer código depois dele,
dentro da mesma função, nunca é executado. E uma função sem return
devolve None por padrão.
Vários parâmetros e parâmetros com valor padrão
def apresentar(nome, idade, cidade="não informada"):
return f"{nome}, {idade} anos, de {cidade}."
print(apresentar("Ada", 28, "São Paulo"))
print(apresentar("Alan", 41)) # usa "não informada" pra cidade
Parâmetros com valor padrão (cidade="não informada") são opcionais na
hora de chamar a função.
Dica
Dê nomes de verbo para funções que fazem algo (calcular_media,
enviar_email) e nomes de substantivo para variáveis. Isso torna o
código muito mais fácil de ler seis meses depois.
Por que isso importa
Funções também ajudam a organizar o raciocínio: em vez de um programa inteiro em sequência, você passa a pensar em pedaços pequenos e testáveis — “uma função que calcula a média”, “uma função que valida um CPF” — que se combinam para formar o programa completo.
Exercícios
Exercício
1. Aquecimento. Escreva uma função eh_par(numero) que devolve
True se o número for par e False caso contrário (reaproveite o %
da aula de operadores).
Exercício
2. Com lista. Escreva uma função media(lista_de_numeros) que recebe
uma lista e devolve a média dos valores. Teste com pelo menos duas listas
diferentes.
Exercício
3. Desafio. Escreva uma função contar_ocorrencias(lista) que recebe
uma lista de qualquer coisa (strings, números) e devolve um dicionário
com quantas vezes cada item aparece — é o exercício 3 da aula de
dicionários, mas agora como função reutilizável, sem print dentro
dela (só return).