Python Forum
Why isn't this code working? - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Why isn't this code working? (/thread-4623.html)



Why isn't this code working? - Hussein26 - Aug-30-2017

I'm fairly new to python and just started yesterday. I gathered the most that I know and formed a little game or set of questions that the user would input his results and it'll come out. However, I reached a point where this one code would not work! Check it out, what have I done wrong.

number = input("type number")

if number is 5:
    print("correct")
else:
    print("wrong")
as soon as I input 5 in the system, it'll execute "wrong" even when the input is 5. Why?


RE: Why isn't this code working? - ichabod801 - Aug-30-2017

First, you want to use == (double equals) for comparison, not is. Second, input returns a string, not a number. So it returns '5', which is not the same as 5. So you either want to convert the input to an integer (number = int(number)), or you want to test against a string (if number == '5':).


RE: Why isn't this code working? - Hussein26 - Aug-30-2017

(Aug-30-2017, 04:24 PM)ichabod801 Wrote: First, you want to use == (double equals) for comparison, not is. Second, input returns a string, not a number. So it returns '5', which is not the same as 5. So you either want to convert the input to an integer (number = int(number)), or you want to test against a string (if number == '5':).

I feel incredibly stupid! However, I used this line of code:
number = float(input("type number here"))

#instead of

number = int(number)

#I also tried this

number = int(input("type number here"))


'''
and it also worked. However, whats the difference between float and int? when do you use float or int?
or it doesn't matter?

'''



RE: Why isn't this code working? - Larz60+ - Aug-30-2017

myfloat = 1.23456
myint = int(float)
print('myfloat: {}, myint: {}'.format(myfloat, myint))
mynewfloat = float(myint)
print('mynewfloat: {}'.format(mynewfloat))
an integer is a whole number like 1, 2, 3 ,4 etc.
a float is a number like 1.0, 1.035, 76.4, etc. It contains a mantissa and an exponent.

you can convert a float to an integer, and you will lose any decimal portion
If you then convert back to a float, the decimal portion cannot be restored because it was lost.