Módulo 13 - Funções

O que é uma função: o bloco de código com nome

9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

Velocidade

O que você vai aprender

  • Explicar o que é uma função em uma frase.
  • Reconhecer que print, len e input são funções que você já usa.
  • Entender por que código repetido em vários lugares é um problema real.
  • Enxergar a função como a solução: escrever uma vez, usar em todo lugar.

A ideia em uma frase

Até aqui, os seus programas são uma lista de instruções lidas de cima para baixo, uma vez só. Funciona, mas tem um limite: quando uma tarefa precisa acontecer em vários pontos do programa, você acaba copiando o mesmo trecho para cada ponto. A função resolve isso. Ela é um bloco de código que ganha um nome, fica guardado e só executa quando você chama por esse nome. Pense numa receita anotada no caderno: você escreve o passo a passo do bolo uma vez e o prepara quantas vezes quiser, sem reescrever a receita a cada domingo.

A boa notícia é que você não está conhecendo funções agora. Está conhecendo o nome delas. Desde a primeira aula do curso você chama funções o tempo todo: print mostra algo na tela, input lê o que o usuário digita, len conta caracteres e itens, int converte texto em número. Alguém escreveu o código dessas tarefas uma vez, deu um nome a cada bloco, e você só chama o nome seguido de parênteses. É por isso que os parênteses existem: eles são o sinal de execute agora.

nome = input("Digite seu nome: ")
tamanho = len(nome)
print("Seu nome tem", tamanho, "letras.")

# Três funções em três linhas: input, len e print.
# Você chama o nome, o Python executa o bloco guardado.

Você já é usuário de funções. Neste módulo, vira também autor.

Chamar uma função
Executar o bloco de código guardado, escrevendo o nome da função seguido de parênteses. Sem os parênteses, o Python não executa nada: só olha para o nome.

O problema: o mesmo código em cinco lugares

Imagine um programa de vendas que imprime um cabeçalho decorado em cinco momentos diferentes: no início, antes do relatório, antes do resumo e assim por diante. Sem funções, a solução ingênua é copiar e colar as três linhas do cabeçalho cinco vezes. O programa funciona, e é aí que mora o perigo: código repetido parece inofensivo até o dia em que precisa mudar.

print("=" * 30)
print("  RELATÓRIO DE VENDAS")
print("=" * 30)

# ... 40 linhas depois, o MESMO trecho de novo ...

print("=" * 30)
print("  RELATÓRIO DE VENDAS")
print("=" * 30)

# ... e mais três cópias espalhadas pelo programa.

O mesmo bloco copiado. Cada cópia é uma chance de erro no futuro.

Agora o chefe pede para trocar o título para RELATÓRIO MENSAL e usar 40 sinais de igual em vez de 30. Você precisa achar as cinco cópias e alterar as cinco do mesmo jeito. Se esquecer uma, o programa fica inconsistente: quatro cabeçalhos novos e um velho, e ninguém avisa. Esse tipo de erro é silencioso, não gera mensagem de erro nenhuma, e por isso é dos mais difíceis de perceber. Quanto maior o programa, pior fica.

A solução tem nome: escreva uma vez, chame cinco

Com uma função, o cabeçalho é escrito uma única vez e ganha um nome descritivo. Nos cinco pontos do programa, em vez das três linhas copiadas, entra uma linha só: a chamada. Quando o chefe pedir a mudança, você altera o bloco original e as cinco chamadas passam a imprimir o cabeçalho novo, automaticamente, sem caçada pelo código.

def imprimir_cabecalho():
    print("=" * 30)
    print("  RELATÓRIO DE VENDAS")
    print("=" * 30)

imprimir_cabecalho()
# ... o programa segue ...
imprimir_cabecalho()

# ==============================
#   RELATÓRIO DE VENDAS
# ==============================
# ==============================
#   RELATÓRIO DE VENDAS
# ==============================

O bloco mora num lugar só. As chamadas apenas apontam para ele.

Não se prenda ainda aos detalhes do def e da indentação: a próxima aula destrincha cada pedaço dessa escrita. O que importa agora é a ideia. Funções trazem dois ganhos que você vai sentir na pele até o fim do curso: reaproveitamento, porque o mesmo bloco serve em vários pontos, e manutenção, porque toda correção acontece num lugar só. Há um terceiro ganho, mais sutil: um programa cheio de nomes claros, como imprimir_cabecalho e calcular_media, se lê quase como uma lista de tarefas em português. O projeto final do curso, o gerenciador de tarefas, é construído exatamente assim.

Teste rápido

Qual é o principal problema de copiar o mesmo trecho de código em cinco lugares do programa?

Perguntas frequentes

Função e comando são a mesma coisa?
Na prática do dia a dia, muita gente chama print de comando, mas o nome correto é função: um bloco de código guardado que executa quando você escreve o nome com parênteses. Palavras como if, while e def, por outro lado, não são funções: são palavras-chave da linguagem, sem parênteses de chamada.
Quantas funções prontas o Python tem?
O Python traz cerca de 70 funções embutidas, disponíveis sem importar nada, como print, len, input, int, float, type, sum e max. A lista completa está na documentação oficial. Neste curso você usa umas dez delas, que cobrem a maior parte do trabalho de iniciante.
Quando vale a pena transformar um trecho em função?
Dois sinais clássicos: o trecho se repete em mais de um lugar, ou ele faz uma tarefa completa que merece um nome próprio, mesmo aparecendo uma vez só. Na dúvida, pergunte se você consegue dar um nome claro ao trecho, como calcular_media. Se o nome sai fácil, a função provavelmente vale a pena.
Funções deixam o programa mais rápido?
Não é para isso que elas servem. A chamada de função tem um custo minúsculo, irrelevante nos programas deste curso. O ganho das funções é humano: código mais curto, mais legível e mais fácil de corrigir. Programador gasta muito mais tempo lendo e consertando código do que esperando ele rodar.
Existe limite de quantas funções um programa pode ter?
Na prática, não. Programas profissionais têm centenas ou milhares de funções, organizadas em arquivos e módulos. O projeto final deste curso usa meia dúzia delas, e essa quantidade já muda por completo a organização do código.
Por que os parênteses são obrigatórios na chamada?
Porque eles são o sinal de execução. Escrever só print faz o Python olhar para a função sem executá-la, como ler o nome de um contato sem tocar nele. Escrever print() executa. Além disso, é dentro dos parênteses que você entrega informações à função, assunto da aula de parâmetros.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.