Error on average of students

Asked

Viewed 105 times

1

I developed the following algorithm to calculate student averages:

matricula = int (input("Digite a matrícula do Aluno: "))

nota1  = float (input("Digite a primeira nota do aluno: "))
nota2  = float (input("Digite a primeira nota do aluno: "))
nota3  = float (input("Digite a primeira nota do aluno: "))


media = ( nota1 +  (nota2 * 2) + (nota3 * 3)) / 6

if media > 6 :
    print(" O Aluno  de matricula "+matricula, " Foi APROVADO com a média: "+media)

else:
    print(" O Aluno  de matricula "+matricula, " Foi REPROVADO com a média: "+media)

The following error appears:

line 17, in <module>
    print(" O Aluno  de matricula "+matricula, " Foi APROVADO com a média: "+media)
TypeError: must be str, not int

3 answers

4


You do not need and cannot concatenate the text with the number. You could convert the number to text in order to concatenate, but you do not need to do this. Better just put each argument separately, using commas as arrived to use in part.

matricula = int(input("Digite a matrícula do Aluno: "))
nota1  = float(input("Digite a primeira nota do aluno: "))
nota2  = float(input("Digite a primeira nota do aluno: "))
nota3  = float(input("Digite a primeira nota do aluno: "))
media = (nota1 +  (nota2 * 2) + (nota3 * 3)) / 6
if media > 6:
    print(" O Aluno  de matricula ", matricula, " Foi APROVADO com a média: ", media)
else:
    print(" O Aluno  de matricula ", matricula, " Foi REPROVADO com a média: ", media)

Behold working in the ideone. And in the repl it.. Also put on the Github for future reference.

  • Perfect, I forgot about that. Thank you!

1

A possible solution is to convert the numerical type data into string, this way you can concatenate.

 print(" O Aluno  de matricula "+str(matricula), " Foi APROVADO com a média: "+str(media))

1

Browser other questions tagged

You are not signed in. Login or sign up in order to post.