Iniciando na programação esclarecendo duvidas

37 views
Skip to first unread message

JERDMULLER ALEXANDRE DA SILVA

unread,
Aug 6, 2022, 7:04:30 PM8/6/22
to Python Brasil
Montei esse código para entregar numa atividade mais não consigo obter resultado que espero no final do código ele repete todos os alunos com todos os resultados alguém poderia me explicar oque ocasiona isso como posso resolver ?

alunos = []
notas = []
while True:
    nome = input('Digite o nome do aluno:').lower().title()
    if nome == 'Sair':
        break
    while True:
        media = float(input('Digite a media do aluno:'))
        if 0 <= media <= 10:
            break
        print('Media invalida, tente novamente')
    print('-=' * 15)
    notas.append(media)
    alunos.append(nome)

for nome in alunos:
    for media in notas:
        if 6 <= media <= 10:
            situacao = 'está Aprovado'
        elif 2 <= media <= 5:
            situacao = 'está em Recuperação'
        else:
            situacao = 'está Reprovado'
        print(nome, situacao)

Professor Paiva

unread,
Aug 6, 2022, 8:12:36 PM8/6/22
to python...@googlegroups.com
Amigo,

Você deve simplificar se código:
Nome = “*”
Alunos = []
Médias = []
Situacao = []
While nome != “sair”:
      Ler nome
      If nome != “sair”:
          Ler med
          Média.append(med)
          If med >= 7:
                        Sit.append(“Aprovado”)
          Elif media >=5:
        Sit.append(“Recuperação”)
         Else:
        Sit.append(“Reprovado”)
For I in alunos:
      Print (aluno[i], media[i],situacao[i]

Acho que assim fica legal.

Estou em um aniversário, mas espero ter ajudado.

     


Enviado do meu iPhone

Em 6 de ago. de 2022, à(s) 20:04, JERDMULLER ALEXANDRE DA SILVA <jerdmull...@escolar.ifrn.edu.br> escreveu:


--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/334c9210-978a-49a3-8a2e-10dc1f9e3217n%40googlegroups.com.

Daniel Silva

unread,
Aug 7, 2022, 6:30:38 PM8/7/22
to python...@googlegroups.com
Você está tratando "alunos" e "notas" como 2 entidades independentes.

Não há ligação entre o aluno e sua média..

Na prática ele percorre primeiro a lista de todos os alunos, e dentro dessa lista, ele percorre a lista de todas as médias. Ou seja, cada aluno tem todas as médias inseridas.

Renan

unread,
Aug 8, 2022, 9:19:47 AM8/8/22
to python...@googlegroups.com
Prezado,
Está incorreta a lógica, pois se cadastrar 3 pessoas e suas médias, vão ter 3 notas na lista. o for de média, roda 3x para cada nome.

Em sáb., 6 de ago. de 2022 às 20:04, JERDMULLER ALEXANDRE DA SILVA <jerdmull...@escolar.ifrn.edu.br> escreveu:

Alexandre Menezes Ferreira

unread,
Aug 10, 2022, 9:08:00 AM8/10/22
to python...@googlegroups.com
O erro está no IF
If Média >= 6:
    Print('Aprovado')
Else:
    Print('Reprovado')

André Geraseev

unread,
Aug 22, 2022, 9:17:53 AM8/22/22
to python...@googlegroups.com
Acho que ai o interessante seria usar um dicionário ao invés da lista não acha não? 

Reply all
Reply to author
Forward
0 new messages