Problem using if elif else (error in else)

-1
n = input ("informe seu nome ")
b1 = float(input("informe sua nota em Biologia no 1º Bimestre "))
b2 = float(input("informe sua nota em Biologia no 2º Bimestre "))
b3 = float(input("informe sua nota em Biologia no 3º Bimestre "))
b4 = float(input("informe sua nota em Biologia no 4º Bimestre "))
media = (b1 + b2 + b3 + b4) / 4
if media >= 6:
   print (n,", sua média em Biologia é,",media,"você foi aprovado")
elif media <= 5.9 and media >= 4: 
   print (n,",sua média em Biologia é,",media,"você esta de recuperação")
else media < 3.9: # Não tô entendendo este erro
print (n,", sua média em Biologia foi",media,"Você esta reprovado")
    
asked by anonymous 25.10.2015 / 06:00

3 answers

2

No condition is used in else because else becomes valid when the other conditions are not true.

See below:

if media >= 6:
    print ("{nome} sua média em Biologia é {media} você foi aprovado".format(nome=n, media=media))
elif media <= 5.9 and media >= 4: 
    print ("{nome} sua média em Biologia é {media}, você esta de recuperação".format(nome=n, media=media))
else: # Não se utiliza condição no else.
    print ("{nome} sua média em Biologia foi {media}. Você esta reprovado".format(nome=n, media=media))

See how to use conditional statements in python here .

You can also use format to format your strings, see more here in this answer about concatenation of strings in python .

    
25.10.2015 / 18:23
2

The "else" does not receive parameters, it is an applicable condition only when the others fail, so:

else media < 3.9: # Não tô entendendo este erro

You should move to:

elif media < 3.9: # Não tô entendendo este erro

However in the end it is good practice to put an "else", even if it does nothing, like this:

elif media < 3.9:
    print (n,", sua média em Biologia foi",media,"Você esta reprovado")
else:
    pass
    
25.10.2015 / 13:08
0

Well, I believe the error is in the way you are using the else, see what we are doing!

  • If you average greater 6: do this;
  • If it is not greater than 6 and greater than 4: do this;
  • If it does not average less than 3: .... (here even for reading it was bad);

The else without if can not test more conditions! Add another elif here:

if media >= 6:
   print (n,", sua média em Biologia é,",media,"você foi aprovado")
elif media <= 5.9 and media >= 4: 
   print (n,",sua média em Biologia é,",media,"você esta de recuperação")
elif media < 3.9:
   print (n,", sua média em Biologia foi",media,"Você esta reprovado")

Here if you want to use else to give another print

if media >= 6:
   print (n,", sua média em Biologia é,",media,"você foi aprovado")
elif media <= 5.9 and media >= 4: 
   print (n,",sua média em Biologia é,",media,"você esta de recuperação")
elif media < 3.9 and >= 0:
   print (n,", sua média em Biologia foi",media,"Você esta reprovado")
else: #Observe que o else aqui não vai testar condições!
   print (n,"......")
    
25.10.2015 / 11:59