Submódulo 4: Funções, entrada e saída: funções simples e utilitários
Utilitários embutidos (len, type, max, min) e um programa completo de exemplo
🧰 Ferramentas do dia a dia: len, type, max e min
O Python fornece funções embutidas que aceleram tarefas comuns: len(obj)
retorna o tamanho de sequências e coleções; type(x)
indica o tipo em tempo de execução; max()
e min()
retornam valores extremos. Essas funções são parte da biblioteca core e devem ser usadas sempre que possível para clareza e desempenho.(1)

Sobre escopo: uma variável local existe apenas dentro da função; alterar uma variável global dentro de uma função exige cuidado e, geralmente, deve ser evitado em prol de funções puras que recebem parâmetros e retornam resultados. Isso torna o código mais previsível e testável — por isso passamos valores e usamos retornos em vez de depender de globals.(2)
Vamos combinar uma função que calcula área de retângulo com um pequeno programa que soma dois números — assim vemos reutilização, testes e utilitários juntos.(1)(3)
def area_retangulo(largura, altura):
'''Retorna a área de um retângulo.'''
return largura * altura
# Testes básicos
assert area_retangulo(2, 3) == 6
assert area_retangulo(5, 0) == 0
# Programa que usa utilitários
a = 'python'
print(f"O tamanho da string 'python' é {len(a)} e seu tipo é {type(a)}.")
# Exemplo rápido com max/min
valores = [3, 7, -1, 42]
print(f'Maior: {max(valores)}, Menor: {min(valores)}')
Reflita: Você fez funções que retornam valores e validações. Como isso ajuda quando seu código cresce para 100–1000 linhas? Pense em testes: funções puras facilitam testes automatizados, algo valorizado por empregadores ao revisar seu portfólio.
Conexão prática: empresas usam essas convenções (docstrings, testes simples, tratamento de I/O) em entrevistas e projetos; escrever código assim já é um ganho no seu portfólio. A documentação oficial lista as funções built-in e explica nuances de comportamento e exceções — consulte-a quando tiver dúvida.(1)
Desafio prático: Escreva uma função somar_e_formatar(a, b)
que retorna uma string formatada com o resultado e o tipo de cada entrada, por exemplo: "2 (int) + 3.5 (float) = 5.5". Adicione asserts que validem 3 casos diferentes.