Ir ao conteúdo

Python Exercicio Beecrowd 1040 - Média 3 (Python)


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Boa tarde galera!
Senhores, estou treinando Python através da plataforma Beecrowd para exercícios enquanto acompanho o curso do Guanabara no Curso em Vídeo.
Tem um exercício no Beecrowd onde todas as minhas saídas dão exatamente conforme no enunciado, mas já caçei em fóruns (inclusive da propria Beecrowd) e até mesmo olhei códigos que foram "admitidos" na plataforma e não consigo entender o erro.
A IDLE que uso é a PyCharm e ela não me retorna nenhum erro, todos os valores aparecem devidamente.

Meu código:

lista = input().split(" ")

a, b, c, d = lista
n1 = float(a)*2
n2 = float(b)*3
n3 = float(c)*4
n4 = float(d)

media = (n1 + n2 + n3 + n4)/10

if media >= 7.0:
    print(f"Media: {float(media):.1f}\nAluno aprovado.")

if media < 5.0:
    print(f"Media: {float(media):.1f}\nAluno reprovado.")

if media > 5.0 or media <= 6.9:
    exame = float(input(""))
    print(f"Media: {media}")
    print("Aluno em exame.")
    print(f"Nota do exame: {exame}")
    result = (media + exame)/2
    if result >= 5:
        print("Aluno aprovado.")
        print(f"Media final: {float(result):.1f}")
    else:
        print(f"Aluno reprovado.")
        print(f"Media final: {float(result):.1f}")

 
Quando submeto o código na plataforma Beecrowd, me aparece:

Traceback (most recent call last):
File "/judge/judge-9511b8b61cbe4ff5bfe0de3dc042a459.d/Main.py", line 18, in <module>
exame = float(input())
EOFError: EOF when reading a line


A linha 18 é a que está exame = float(input("")) e não interessa a mudança que eu faça dentro dos parenteses de input, o erro permanece o mesmo (seja com aspas simples, duplas, sem aspas, com split tipo lista, com reza, tudo)

Se alguém puder dar uma luz, ficarei grato!!

  • Solução
Postado

@Lobarinhas Com as condicionais assim sempre vai entrar no if do exame, por isso acontece o erro já que no caso de aprovado ou reprovado o programa não deve pedir mais nenhuma entrada. Use elif para evitar isso.

 

if media >= 7.0:

elif media < 5.0:

elif 5.0 <= media <= 6.9:

 

A última condição também poderia ser só else.

  • Obrigado 1
Postado

@Midori Oi!

Muuuito obrigado pela ajuda! Deu certo utilizando a forma que passou.

Pelo visto vou precisar rever um pouco as aulas sobre laços só para "fixar melhor" as sintaxes e entender melhor os conceitos.

Muito obrigado!

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...