SyntaxWarning: "is" with a literal. Did you mean "=="? 오류

2397 단어 pythonpython

days에서 tuple을 Loop하면서 WED가 되는 경우 반복을 빠져나오도록 하기 위해 다음과 같이 파이썬 코드를 작성하였으나 오류가 발생하였다.

SyntaxWarning: "is" with a literal. Did you mean "=="?

문제코드

days = ("MON", "TUE", "WED", "THU")

for day in days:
  if day is "WED":
    break
  else:
    print(day)

에러내용에 따라서 위 코드를 다음과 같이 고쳐봤더니 정상적으로 작동하였다.

수정코드

days = ("MON", "TUE", "WED", "THU")

for day in days:
  if day == "WED":
    break
  else:
    print(day)

오류가 발생했던 이유는 is는 레퍼런스(포인터)를 비교하기 때문이다.

is 연산자는 되도록이면 None, True, False 등을 비교할 때 사용하고
값(데이터)를 비교할때는 ==를 사용하도록 하자.

좋은 웹페이지 즐겨찾기