Aula 20: Exercícios Práticos da Semana

Consolidando o conhecimento em funções e estruturas de dados.

O Que Você Vai Aprender

Nesta aula de 1 hora, você terá a oportunidade de aplicar todos os conceitos de funções aprendidos na semana. O foco será em resolver problemas práticos e, crucialmente, em refatorar um código existente para torná-lo mais modular e organizado utilizando funções. Prepare-se para solidificar seu conhecimento!

🛠️ Aplicar Conceitos de Funções

Utilizar funções para solucionar problemas de forma eficiente e modular.

♻️ Refatorar Código Procedural

Converter um código "desorganizado" em um código bem estruturado com funções.

Refatoração de Código: Tornando o Código Mais Limpo

Refatorar código significa reestruturá-lo sem alterar seu comportamento externo. Usar funções para refatorar é uma prática fundamental que melhora a organização, legibilidade e manutenibilidade do seu programa. Transforme blocos de código repetidos ou lógicos complexos em funções nomeadas e reutilizáveis.

Exemplo de Refatoração

Um programa que calcula a média de um aluno pode ser dividido em funções:

  • `pedir_notas()`: Uma função que lida com a entrada de dados.
  • `calcular_media(lista_de_notas)`: Uma função que realiza o cálculo da média.
  • `verificar_status(media)`: Uma função que determina se o aluno foi aprovado ou reprovado.
# Código procedural (exemplo simples)
# nota1 = float(input("Digite a nota 1: "))
# nota2 = float(input("Digite a nota 2: "))
# media = (nota1 + nota2) / 2
# if media >= 7:
#     print("Aprovado")
# else:
#     print("Reprovado")

# Código refatorado com funções (conceito)
# def pedir_notas():
#     # Lógica para pedir notas
#     pass
# def calcular_media(notas):
#     # Lógica para calcular
#     return media
# def verificar_status(media):
#     # Lógica para verificar
#     pass

Refatoração: Simule o Cálculo de Média

Insira as notas (separadas por vírgula) para simular o cálculo da média refatorado com funções.

Resolução de Problemas com Funções

Agora é a hora de aplicar seu conhecimento em funções para resolver problemas práticos e integrados. Use as funções para tornar seu código modular e fácil de entender.

1. Calculadora Simples

Crie funções separadas para somar, subtrair, multiplicar e dividir. Em seguida, crie uma função principal que mostra um menu, pede ao usuário a operação e os números, chama a função apropriada e exibe o resultado.

2. Validador de CPF (simplificado)

Crie uma função `validar_cpf(cpf_string)` que retorna `True` ou `False`. A função deve verificar se o CPF tem exatamente 11 caracteres e se todos são dígitos (números).

Dica: Use `len()` para o comprimento e o método `.isdigit()` para verificar se a string contém apenas dígitos.

3. Verificador de Palíndromo (com função)

Revisite o exercício do palíndromo da semana 3, mas agora coloque toda a lógica de verificação dentro de uma função `eh_palindromo(texto)` que retorna `True` ou `False`.

Dica: A função deve limpar a string (remover espaços, converter para minúsculas) e comparar a string limpa com sua versão invertida. (Ex: "Anotaram a data da maratona").

Desafios para Continuar

Esta é a sua oportunidade de aprofundar o aprendizado! Tente resolver os problemas propostos individualmente ou em duplas no seu ambiente de desenvolvimento Python. Não se esqueça de discutir as soluções e as diferentes abordagens possíveis com seu instrutor e colegas, reforçando por que cada estrutura de dados e o uso de funções foram a escolha ideal para cada cenário.

  • Implementar a Calculadora Simples

    Escreva o código completo para a Calculadora Simples, garantindo que ela funcione com as funções de operação e um menu principal interativo.

  • Refatorar o Cálculo de Média

    Revisite o exercício do cálculo de média de um aluno (da Semana 2 ou um similar que você tenha) e refatore-o para usar as três funções sugeridas: `pedir_notas()`, `calcular_media(lista_de_notas)` e `verificar_status(media)`.