M10 — Funções
Bloco 5 — Estruturas de dados e funções · Eixo B · Nível NÍVEL 1 + NÍVEL 2 · LAB
Abertura
Com M9, você já sabe estruturar dados em listas e dicionários. Mas conforme o código cresce, blocos de lógica se repetem. Este módulo ensina a empacotar lógica reutilizável em funções — a base de qualquer programa organizado, e pré-requisito direto para M11, onde skills e ferramentas do Claude Code são, na prática, funções expostas ao agente.
Conceito central
Uma função é um bloco de código
nomeado, definido com def, que pode receber entradas — os
parâmetros — e devolver uma saída
com retorno (return). Definir uma
função não a executa — só a chamada (nome_da_funcao(...)) executa o
que está dentro dela.
Um parâmetro pode ter um valor padrão, o que o torna opcional na chamada: se você não informar aquele argumento, a função usa o valor padrão em vez disso. O retorno é o que permite que o resultado de uma função seja usado por outra parte do código, inclusive por outra função — sem retorno, o resultado calculado dentro da função fica preso ali, inacessível para o resto do programa.
Vale marcar uma diferença importante: uma função que returna um valor
pode ter seu resultado reaproveitado; uma função que só executa uma
ação, como imprimir algo com print, não devolve nada útil para reuso
— ela produz um efeito (o texto aparece na tela), mas não um valor que
outra parte do código possa usar.
Na prática
Um cálculo repetido duas vezes no código, virando uma função com parâmetro e retorno:
Um parâmetro com valor padrão, tornando-o opcional na chamada:
Uma função chamando outra, conectando com as listas de dicionários de M9 — recebe uma lista e devolve um subconjunto filtrado:
Lab opcional 🔵
Transforme a lógica de filtro que você escreveu no lab de M9 em uma função reutilizável, com um parâmetro para a condição de filtro.