Olá, Luiz. Como vai?
Seu código está muito bem encaminhado e utiliza de forma correta o conceito de tuplas para armazenar registros imutáveis dentro de uma lista. A lógica de parada do while com uma string vazia é uma solução bem elegante e funcional para interações via terminal.
Notei apenas dois pontos que podem causar erros durante a execução, dependendo de como os dados forem digitados:
- O método
split(', ') espera exatamente uma vírgula seguida de um espaço. Se o usuário digitar apenas a vírgula, o Python não conseguirá encontrar o índice aluno[1] ou aluno[2], causando um erro de índice. - Se houver espaços extras acidentais, a conversão para
int() ou float() pode falhar.
Uma forma de tornar seu código mais robusto é tratar cada elemento da tupla individualmente para remover espaços em branco. Veja esta sugestão:
lista = []
aluno = input("Digite os dados do aluno no formato Nome, Idade, Nota (separadas por vírgula): ")
while aluno:
# O strip() em cada item garante que espaços extras não quebrem a conversão
dados = [item.strip() for item in aluno.split(',')]
lista.append(tuple(dados))
aluno = input("Digite os dados do aluno no formato Nome, Idade, Nota (separadas por vírgula): ")
for aluno in lista:
# Verificamos se a tupla tem os 3 elementos esperados antes de imprimir
if len(aluno) == 3:
print(f"Aluno: {aluno[0]}\nIdade: {int(aluno[1])}\nNota: {float(aluno[2])}\n")
Essa abordagem de usar tuplas dentro de listas é excelente para simular pequenos bancos de dados em memória, pois garante que os dados de um aluno específico fiquem sempre agrupados.
Espero que possa ter lhe ajudado!