Informática, perguntado por emanuellyfrei2006, 4 meses atrás

Crie um programa que leia nome, sexo e nota(entre 0 e 100) de vários estudantes de uma turma, guardando os dados de cada pessoa em um dicionário e todos os dicionários em uma lista. Faça ainda o tratamento de erros.No final, mostre:

Quantos estudantes foram cadastradas na turma
Qual a média de notas dos estudantes
Uma lista com os estudantes do sexo masculino
Uma lista com os estudantes com nota acima da média da turma


lemoseric: Em qual linguagem de programação?
emanuellyfrei2006: Python

Soluções para a tarefa

Respondido por lemoseric
1

Resposta:

import time

import os

def validarNome():

   validando = True

   while(validando):

       nome = input(' >>> Digite o nome do estudante: ')

       if(not nome.isdigit()): validando = False

       else: print(f' (!) ERRO: "{nome}" não é um nome válido!')

   return nome

def validarSexo():

   validando = True

   while(validando):

       sexo = input(' >>> Digite o sexo do estudante (M/F): ')

       if((sexo.upper() == 'M') or (sexo.upper() == 'F')): validando = False

       else: print(f' (!) ERRO: "{sexo}" não é uma opção válida!')

   return sexo

def validarNota():

   validando = True

   while(validando):

       nota = int(input(' >>> Digite a nota do estudante (0-100): '))

       if((nota > 0) and (nota <= 100)): validando = False

       else: print(f' (!) ERRO: A nota "{nota}" não está compreendida entre 0-100.')

   return nota

def validarExec():

   os.system('cls')

   escolhendo = True

   while(escolhendo):

       escolha = input(' >>> Deseja cadastrar outros estudantes (S/N)? ')

       if(escolha.upper() == 'S'):

           escolhendo = False

           return True

       elif(escolha.upper() == 'N'):

           print('Gerando resultados. Aguarde...')

           escolhendo = False

           time.sleep(1)

           return False

       else:

           print(f'  "{escolha}" não é uma opção válida. Informe "S" ou "N".')

def executarPrograma():

   executando = True

   masculino = []

   aprovados = []

   contador = 0

   dados = []

   media = 0

   while(executando):

       os.system('cls')

       print('#--------------------------------------------------------#')

       print('#                  CADASTRAR ESTUDANTES                  #')

       print('#--------------------------------------------------------#')

       nome = validarNome()

       sexo = validarSexo()

       nota = validarNota()

       media += nota

       contador += 1

       if(sexo.upper() == 'M'): masculino.append(nome)

       if(nota >= 70): aprovados.append(nome)

       media /= contador

       dados.append({

           "id": contador,

           "nome": nome.upper(),

           "sexo": sexo.upper(),

           "nota": nota

       })

       

       executando = validarExec()

   os.system('cls')

   print('#--------------------------------------------------------#')

   print('#                 RESULTADOS DO PROGRAMA                 #')

   print('#--------------------------------------------------------#')

   print(f'# Total de estudantes cadastrados: {contador}')

   print(f'# Média de nota dos estudantes: {media:.0f}')

   print(f'#\n# Estudantes do sexo masculino:')

   for pessoa in masculino: print(f'# >>> {pessoa}')

   print(f'#\n# Estudantes aprovados:')

   for pessoa in aprovados: print(f'# >>> {pessoa}')

   print('#--------------------------------------------------------#')

   input( ' Aperte enter para encerrar...')

if(__name__ == '__main__'):

   executarPrograma()

Observação:

Qualquer dúvida sobre o código me envie mensagem por aqui, mas acredito que a maior parte você consiga entender.

Perguntas interessantes