0
Please tell me why this code gives this error? <String>: 2: SyntaxWarning: "is" with a literal. Did you mean "=="?
Code: n=3 if n is 2: print ('y') else: print ('n')
2 Answers
+ 2
First Of All its a warning not an error,
the 'is' keyword is to used to check if two variables refer to the same object or not and it actually compares their location not the variable, You Will Get False Even If They Holds The Same Value. eg-
class A:
def __init__(self, num):
self.num=num
n = A(3)
m = A(2)
print(n is m) #False
print(n.num is m.num) #False
q = A(3)
print(q is n) #False
print(q.num is n.num) #True
more info at https://www.w3schools.com/JUMP_LINK__&&__python__&&__JUMP_LINK/ref_keyword_is.asp#:~:text=The%20is%20keyword%20is%20used,if%20two%20variables%20are%20equal.
+ 1
its telling you not to use 'is' like that. When comparing values, use == (equal to).
... snippet ...
if n == 2:
...
...