Problem declaring variables for average calculation in Python 3

Asked

Viewed 9,671 times

5

n1 = input("informe sua nota do 1º Bimestre ")
n2 = input("informe sua nota do 2º Bimestre ")
n3 = input("informe sua nota do 3º Bimestre ")
n4 = input("informe sua nota do 4º Bimestre ")
media = float((n1 + n2 + n3 + n4)) / int(4)
print("A média é",media)

informe sua nota do 1º Bimestre 2
informe sua nota do 2º Bimestre 2
informe sua nota do 3º Bimestre 2
informe sua nota do 4º Bimestre 2
A média é 555.5

1 answer

8


In Python 2, input returns a Python object interpreted according to the syntax of that language (i.e. if you type "2", it returns the number 2). In Python 3, it simply returns a string (the same as the raw_input of Python 2, if I’m not mistaken).

Thus, by adding up the values of n1 to n4 you are actually making a string concatenation, not a number sum:

float ((n1 + n2 + n3 + n4)) / int(4)
= float('2' + '2' + '2' + '2') / 4
= float('2222') / 4
= 2222/4
= 555.5

To get the result you want, convert each individual variable to a number:

n1 = float( input ("informe sua nota do 1º Bimestre ") )
n2 = float( input ("informe sua nota do 2º Bimestre ") )
n3 = float( input ("informe sua nota do 3º Bimestre ") )
n4 = float( input ("informe sua nota do 4º Bimestre ") )
media = (n1 + n2 + n3 + n4) / 4

Browser other questions tagged

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