Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Resolução de Atividades - 13. Registrando dados de alunos

# A escola precisa de um programa que receba, em uma única entrada, os nomes, as idades e as médias, e imprima esses dados separadadmente

def main():

    lista_dados = input ("Bom dia! Insira a lista contendo, sequencialmente, o nome de um aluno, a idade dele e sua a média; assim por diante. \nDigite aqui a lista: ").split (", " or " e ")

    # É necessário percorrer a lista a cada 3 índices. Decidiu-se escolher o método range(), pois ele permite range (ponto_de_inicio, ponto_de_parada, quantidade_de_passos)

    print ("LISTA\n\n")

    indice_parada = len (lista_dados) - 1
    frequencia_do_indice = 3

    for indice_iterador in range (0, indice_parada, frequencia_do_indice):

        print (f"Nome: {lista_dados[indice_iterador]}") # 0
        print (f"Idade: {lista_dados[indice_iterador + 1]}") # 0 + 1 = 1
        print (f"Média: {lista_dados[indice_iterador + 2]}\n")    # 0 + 2 = 2



if __name__ == "__main__":

    main()
2 respostas
solução!

Olá, Victor. Tudo bem por aí?

Gostei da solução que você montou para a atividade. A ideia de percorrer a lista de três em três posições usando range() ficou adequada para esse tipo de entrada, já que cada aluno é representado por três informações consecutivas. Os comentários também ajudam a deixar claro o raciocínio adotado. Só há um detalhe na forma como você fez o split(): a expressão ", " or " e " não funciona como pode parecer. Em Python, ela sempre resulta em ", ", então a divisão nunca será feita por " e ".

Se a entrada seguir exatamente o formato proposto pelo exercício, basta manter o split(", ").

Você consegue imaginar como adaptaria essa solução para armazenar os dados em uma lista de listas, em vez de apenas imprimir as informações?

Parabéns pelo empenho e por explicar seu raciocínio durante a implementação. Continue compartilhando suas soluções. O fórum está à disposição para acompanhar sua evolução.

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

É que como eu fiz tudo seguido, então o erro ficou nos exercícios, mas já arrumei no código final ksksksk.

Respondendo sua pergunta, eu pensei em fazer isso de duas formas:

1 - Com um menu interativo através do "while True", seriam feitas perguntas separadas para armazenar as respostas via variáveis (input()). Depois, bastaria criar uma lista com esses dados (ou até um dicionário, seria melhor) e depois adicionar na lista final. Uma lista dentro da lista, como se fosse pacotinhos.

2 - Usando a POO, eu criaria a classe Aluno que teria como atributos o nome, a nota e a idade. Após isso, eu criaria uma lista geral (pertencente à Classe) e adicionaria esses alunos lá. Isso permitiria, depois, criar métodos para iterar de uma forma mais amigável ao usuário, poderia criar outra lista de alunos com recuperação e enviar para o SGBD, entre outros métodos. O Céu seria o limite.