Submódulo 3: Funções: definição, parâmetros, retorno e escopo

Site: Lumina
Curso: Python para Iniciantes: Lógica e Programação
Livro: Submódulo 3: Funções: definição, parâmetros, retorno e escopo
Impresso por: Usuário visitante
Data: quarta-feira, 17 set. 2025, 21:05

Descrição

Este submódulo aprofunda o papel das funções em Python, mostrando como defini-las com def, como trabalhar com parâmetros (incluindo valores padrão e argumentos nomeados), como retornar resultados com return e como o escopo (local vs global) influencia o comportamento do código. Vamos construir uma base sólida para estruturar o portfólio, com exemplos práticos como soma de números, verificação de palíndromos e formatação de saídas, além de exercícios para consolidar o aprendizado. Ao final, você estará apto a modularizar pequenos projetos e a pensar em reutilização de código.

Definição de Funções: 'def', assinatura e retorno básico

🎯 Definição de Funções: por que usar e como começar

Vamos entender o conceito central por trás das funções: encapsular uma tarefa com um nome significativo para reutilizá-la e manter o código organizado. Imagine que você precisa somar dois números várias vezes no mesmo programa; em vez de repetir o código, criamos uma função chamada soma. Em Python, definimos funções com a palavra-chave def, seguida pelo nome da função, um conjunto de parâmetros entre parênteses e dois pontos. O corpo da função fica indentado, e o valor de retorno é especificado com return. Exemplo básico: def soma(a, b): return a + b. Ao chamar soma(3, 5), obtemos 8 como resultado imediato. (1)

def soma(a, b):
    """Retorna a soma de dois números."""
    return a + b

Notas importantes: o nome da função deve ser descritivo e o corpo da função deve realizar apenas uma tarefa bem definida. Docstrings ajudam a documentar o propósito da função para quem lê o código, por exemplo: def soma(a, b): """Retorna a soma de dois números.""". (2)

graph TD; Definicao---Parametros---Retorno

Além disso, o escopo define onde as variáveis existem. Variáveis criadas dentro da função são locais e não alteram o estado do módulo por padrão. Este é um ponto crucial para evitar efeitos colaterais indesejados. (3)

Exercício rápido: crie uma função simples que recebe dois números e retorna o maior entre eles. Em seguida, chame a função com diferentes pares para observar o resultado.

Parâmetros, Retorno e Escopo: assinaturas, valores padrão e visibilidade

🎯 Parâmetros, Retorno e Escopo

Agora vamos aos detalhes da assinatura de uma função: parâmetros são as entradas que a função recebe para realizar uma tarefa. Parâmetros podem ser obrigatórios ou ter valores padrão; em Python, valores padrão devem ficar após os parâmetros obrigatórios. Um exemplo simples: def maximo(a, b=0): return a if a > b else b. Quando a função é chamada com maximo(3, 5) obtemos 5; com maximo(3) obtemos 3. (1)

def maximo(a, b=0):
    """Retorna o maior entre 'a' e 'b'."""
    return a if a > b else b

O retorno pode ser explícito com return ou, se não houver retorno, a função retorna Nenhum valor (None). (2)

def sem_retorno(valor):
    print(valor)

Sobre o escopo, variáveis declaradas dentro de uma função são locais. Se precisarmos modificar variáveis do nível do módulo, usamos global ou nonlocal em casos mais complexos (veja referências). (3)

graph TD; Parametros---Retorno---Escopo

Exercícios: (a) crie uma função que recebe dois números e retorna o maior entre eles; (b) implemente uma função que verifica se uma string é palíndromo e explique o que acontece se a string contiver espaços ou maiúsculas; (c) crie uma função que normalize textos para apresentação (remova espaços, padronize maiúsculas, etc.).

🎯 Exercícios

🎯 Exercícios: Funções: definição, parâmetros, retorno e escopo

Teste seus conhecimentos com estas questões de múltipla escolha. Cada questão tem apenas uma resposta correta.

Questão 1

O que define uma função em Python?

Questão 2

Qual é a palavra-chave usada para definir uma função em Python?

Questão 3

Para retornar um valor de uma função, qual instrução deve ser usada?

Questão 4

Qual é o papel da indentação na definição de uma função?

Questão 5

O que é uma docstring em Python e qual é seu objetivo?