Seções 8.0–8.1 — Definindo funções, retorno e variáveis locais/globais
Uma função é um trecho de programa que pode ser chamado (executado) várias vezes. Em vez de repetir código, encapsulamos a lógica numa função e a reutilizamos quando necessário.
Em Python, a definição de funções usa a palavra-chave def, seguida do nome, parâmetros entre parênteses e dois-pontos. O corpo é indentado:
Os valores a e b são parâmetros — placeholders que recebem os valores passados na chamada (argumentos).
💡 Funções permitem dividir um programa grande em partes menores e reutilizáveis. Isso facilita a leitura, o teste e a manutenção do código.
A função anterior imprime o resultado, mas não o “devolve” ao código que a chamou. Para isso, usamos return:
O return encerra a execução da função e devolve o valor ao chamador. Agora o resultado pode ser armazenado numa variável ou usado em expressões.
Funções podem retornar qualquer tipo — inclusive True/False. Isso as torna legíveis como expressões condicionais:
Escreva uma função dobro(n) que receba um número inteiro e retorne o seu dobro. Teste chamando-a com diferentes valores.
Escreva uma função media(a, b, c) que receba três números reais e retorne a média aritmética entre eles.
Funções aceitam qualquer tipo como parâmetro, inclusive listas. Veja uma função que pesquisa um elemento numa lista:
Podemos calcular a média de uma lista de valores:
Funções também podem chamar umas às outras. Abaixo, media usa a função soma:
Escreva uma função maior(lista) que receba uma lista de números e retorne o maior deles, sem usar a função embutida max().
Escreva uma função conta_pares(lista) que retorne quantos números pares existem na lista.
Uma função bem projetada deve ser geral e reutilizável. O exemplo abaixo mostra como não escrever uma função de soma:
O fatorial de n é o produto 1 × 2 × 3 × … × n. Podemos calculá-lo de duas formas iterativas:
Escreva uma função potencia(base, exp) que calcule base elevado a exp de forma iterativa, sem usar o operador **.
Escreva uma função combinacao(n, k) que calcule o número de combinações de n elementos tomados k a k, usando a função fatorial.
Variáveis criadas dentro de uma função são locais — existem apenas durante a execução da função e não são visíveis fora dela. Variáveis criadas fora de qualquer função são globais.
Para que uma função modifique uma variável global, é necessário declará-la com global:
⚠️ Cuidado: o uso excessivo de global dificulta a leitura e o teste do código. Prefira sempre passar valores como parâmetros e receber resultados via return.