Atividade de revisão rápida em Python
Olá pessoal.
Resumi numa única atividade rápida um pouco de tudo que cai nos primeiros módulos de Python.
Me ajudou revisar alguns temas das primeiras semanas e espero que te ajude também.
Tudo que está com duas ## é comentário e não será utilizado no código.
Tudo que tem apenas uma # é código pronto e você pode copiar digitando logo a baixo ou remover o comentário para ir testando cada módulo do sistema.
Vou disponibilizar no GitHub também.
Funciona no VSCode e no COLAB do Google. BONS ESTUDOS.
## ============================================
## DESAFIO PRÁTICO DE PYTHON - MINI CADASTRO
## ============================================
## Você vai criar um programa que cadastra alunos,
## salva em uma lista, mostra as informações formatadas,
## converte datas, faz cálculos e ainda estiliza a saída.
##
## Use o que você já aprendeu no curso:
## - Variáveis
## - Input
## - Strings (upper, lower, title)
## - Conversão de tipos (int, float)
## - Listas e tuplas
## - Métodos de lista (.append, .reverse)
## - Funções
## - Interpolação com f-strings
## - Estruturas de repetição (for, while)
## - Datas (datetime)
## - Cores no terminal
## ============================================
## 1) IMPORTAR BIBLIOTECAS ÚTEIS
## Vamos usar datetime para trabalhar com datas
## e math para arredondar cálculos.
# import datetime
# import math
## 2) CRIAR UMA LISTA VAZIA PARA GUARDAR OS ALUNOS
## Cada aluno será um dicionário com nome, nascimento e notas.
# alunos = []
## 3) CRIAR UMA FUNÇÃO PARA MOSTRAR UM MENU
## Isso ajuda a organizar o código.
# def mostrar_menu():
# print("\n===== MENU =====")
# print("1 - Cadastrar aluno")
# print("2 - Listar alunos")
# print("3 - Calcular idade de um aluno")
# print("4 - Inverter ordem da lista de alunos")
# print("0 - Sair")
## 4) FUNÇÃO PARA CADASTRAR UM ALUNO
## Aqui usaremos input(), upper(), title() e f-strings
# def cadastrar_aluno():
# nome = input("Digite o nome do aluno: ").title()
# dia = int(input("Digite o dia do nascimento: "))
# mes = int(input("Digite o mês do nascimento (1-12): "))
# ano = int(input("Digite o ano do nascimento: "))
# notas = []
# for i in range(3):
# nota = float(input(f"Digite a {i+1}ª nota do aluno: "))
# notas.append(nota)
# aluno = {"nome": nome, "nascimento": (dia, mes, ano), "notas": notas}
# alunos.append(aluno)
# print(f"\033[92mAluno {nome} cadastrado com sucesso!\033[0m")
## 5) FUNÇÃO PARA LISTAR TODOS OS ALUNOS
## Aqui usamos for, f-strings e cálculos simples
# def listar_alunos():
# if not alunos:
# print("Nenhum aluno cadastrado ainda.")
# return
# for idx, aluno in enumerate(alunos, start=1):
# media = sum(aluno["notas"]) / len(aluno["notas"])
# print(f"{idx}. {aluno['nome']} - Média: {round(media,2)}")
## 6) FUNÇÃO PARA CALCULAR A IDADE DE UM ALUNO
## Aqui entra o datetime
# def calcular_idade():
# import datetime
# nome = input("Digite o nome do aluno para calcular a idade: ").title()
# for aluno in alunos:
# if aluno["nome"] == nome:
# dia, mes, ano = aluno["nascimento"]
# nascimento = datetime.date(ano, mes, dia)
# hoje = datetime.date.today()
# idade = hoje.year - nascimento.year - ((hoje.month, hoje.day) < (nascimento.month, nascimento.day))
# print(f"O aluno {nome} tem {idade} anos.")
# return
# print("Aluno não encontrado!")
## 7) FUNÇÃO PARA INVERTER A LISTA DE ALUNOS
## Usando reverse()
# def inverter_lista():
# alunos.reverse()
# print("Ordem da lista invertida com sucesso!")
## 8) PROGRAMA PRINCIPAL (LOOP)
## Aqui chamamos o menu e as funções.
# while True:
# mostrar_menu()
# opcao = input("Escolha uma opção: ")
# if opcao == "1":
# cadastrar_aluno()
# elif opcao == "2":
# listar_alunos()
# elif opcao == "3":
# calcular_idade()
# elif opcao == "4":
# inverter_lista()
# elif opcao == "0":
# print("Saindo... até logo!")
# break
# else:
# print("Opção inválida. Tente novamente.")