Pular para o conteúdo principal

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 🔵​

Opcional — para assinantes

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.

Checkpoint​