Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Erro na mensgem

Boa tarde pessoal! Alguém poderia me ajudar nessa questão? Crie uma função em python que calcule a média artimética de uma aluna que cursou a disciplina de Programação I. A funcao deve receber como input as notas M1, M2 e M3 e calcular a média. Após a média calculada, a funcao deve anunciar se a aluna foi aprovado, reprovado ou pegou exame de acordo com a seguinte classificacao:

Se a média estiver entre 0.0 e 4.0, o aluno está reprovado Se a média estiver entre 4.1 e 6.0, o aluno pegou exame Se a média for maior do que 6.0, o aluno está aprovado Se o aluno pegou exame, deve ser lida a nota do exame. Se a nota do exame for maior do que 6.0, está aprovado, senão; está reprovado

Nessa ultima parte não sei como fazer o input para que apareça a mensagem em caso da aluna pegar exame.Meu código ficou assim:

nota1 = float(input("Digite o primeira nota:"))
nota2 = float(input("Digite o segunda nota:"))
nota3 = float(input("Digite o terceira nota:"))

média = (nota1 + nota2 + nota3) / 3
print(média)

if média >= 0.0 and média <= 4.0:
  print("A aluna está reprovada")
elif média == 4.1 and média <= 6.0:
  print("A aluna pegou exame")
  nota_exame = float(input("Digite a nota do exame:"))
  if nota_exame >= 6.0:
    print("Aprovada")
  else:
    print("Reprovada")
elif média > 6.0:
  print("A aluna está aprovada")
7 respostas

Olá, Marli! Tudo bom? Espero que sim

No geral o código está muito bem escrito, você fez as conversões de tipo pra cada entrada e atribuiu o tipo float corretamente. A fórmula de média também está ok. Nós ainda temos alguns pontos pra acertar:

  1. No Python, por convenção, nós vamos sempre optar por utilizar caracteres sem acentos na definição de variáveis, então é interessante trocar o média por media.

  2. No primeiro ELIF,

    elif média == 4.1 and média <= 6.0:

é feito o seguinte pedido: "A média deve ser igual a 4.1 E deve ser menor que 6.0". E só existe um valor que é igual a 4.1 e menor que 6, o próprio 4.1. Nesse caso, a correção seria por utilizar

elif media > 4.0 and media <= 6.0

Também observe que a média pode estar entre 4.0 e 4.1, então não começamos a contar os valores a partir do 4.1, e sim do 4.0, mas o excluindo da conta, usando operador maior que (>), que vai considerar todos os valores nesse pequeno intervalo.

O segundo Elif está correto, segue o raciocínio acima perfeitamente.

Finalizando essas correções, é só montar a função e pedir as três notas como parâmetro :D.

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Boa tarde Marcus! Obrigada, porém acredito que não soube me expressar corretamente. Minha duvida esta no bloco em que a aluna pegou exame. Quando o código é executado, para este bloco, só mostra o resutado e não a mensagem. ("A aluna pegou exame"), ("Digite a nota do exame:"), ("Aprovada"), ("Reprovada")

elif média == 4.1 and média <= 6.0: print("A aluna pegou exame") nota_exame = float(input("Digite a nota do exame:")) if nota_exame >= 6.0: print("Aprovada") else: print("Reprovada")

Olá, Marli.

O erro está na condição do Elif deste bloco, você tem que substituir por:

elif media > 4.0 and media <= 6.0:

Note que seu bloco de codigo está com a condição media == 4.1, e não queremos utilizar o operator de igual nesse caso.

solução!

Muitissímo obrigada Marcus!!!! Funcionou

Perfeito, Marli! Ótimo

Só uma dica, você marcou sua resposta como solução aqui no Fórum.

Marquei sim

Sua própria resposta*, me expressei mal