Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Registrando dados de alunos

Uma escola está organizando os dados dos alunos para criar um relatório resumido. Cada aluno tem seus dados registrados em uma única entrada, incluindo nome, idade e nota final no semestre. Esses dados devem ser exibidos separadamente para cada aluno no formato abaixo:

Aluno: Nome
Idade: Idade
Nota: Nota

Ajude a escola a desenvolver um programa que registre as informações dos alunos, organize os dados e exiba um relatório detalhado com as informações separadamente.

Exemplo de Entrada:

Digite os dados do aluno no formato Nome, Idade, Nota separados por vírgula: João, 16, 8.5, Maria, 17, 9.2, Pedro, 15, 7.8

Saída esperada:

Aluno: João
Idade: 16
Nota: 8.5

Aluno: Maria
Idade: 17
Nota: 9.2

Aluno: Pedro
Idade: 15
Nota: 7.8
import re
dados_de_alunos = input("Digite os dados dos alunos no formato Nome, Idade, Nota separados por vírgula: ")
dados_filtrados = dados_de_alunos.strip("")
dados_filtrados = re.findall(r"([A-zÀ-ÿ]+),\s*(\d+),\s*(\d+\.\d+)", dados_filtrados)

for nome in dados_filtrados:
  print("Aluno:", nome[0])
  print("Idade:", nome[1])
  print("Nota:", nome[2])
  print()
Digite os dados dos alunos no formato Nome, Idade, Nota separados por vírgula: João, 16, 8.5, Maria, 17, 9.2, Pedro, 15, 7.8
Aluno: João
Idade: 16
Nota: 8.5

Aluno: Maria
Idade: 17
Nota: 9.2

Aluno: Pedro
Idade: 15
Nota: 7.8

1 resposta
solução!

Oi, Carlos! Como vai?

Agradeço por compartilhar.

O seu código ficou bem organizado e resolveu muito bem a proposta da atividade. O uso do re.findall() pra capturar nome, idade e nota diretamente da string foi uma solução interessante, pois você conseguiu estruturar os dados antes de exibi-los no relatório. Isso mostra uma boa compreensão de expressões regulares e também da forma de percorrer os resultados usando um for.

Uma dica interessante para o futuro é usar listas e o método split() para separar os dados digitados. Isso ajuda bastante quando estamos trabalhando com entradas organizadas por vírgulas.


dados = input("Digite nome, idade e nota: ")

lista = dados.split(",")

for i in range(0, len(lista), 3):
    nome = lista[i].strip()
    idade = lista[i+1].strip()
    nota = lista[i+2].strip()

    print("Aluno:", nome)
    print("Idade:", idade)
    print("Nota:", nota)
    print()

Neste código, split(",") separa os dados usando a vírgula como referencia. Depois, o range percorre a lista de três em três elementos para organizar nome, idade e nota de cada aluno antes de exibir o relatório.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!