Programming/Python

[코딩도장-파이썬] bool과 비교 연산자

Supreme_YS 2020. 11. 9. 17:46

._파이썬은 비교 연산자와 논리 연산자의 판단 결과로 True, False를 사용한다. 비교 결과가 맞으면 True, 아니면 False

예. 3 > 1 True 

 

._숫자가 같은지 다른지 비교

10 == 10 True : 10과 10이 같은지 비교, 같기 때문에 True

10 !=5 True : 10과 5가 다른지 비교, 다르기 때문에 True

 

._문자열이 같은지 다른지 비교하기

'Python' == 'Python'  True

'Python' == 'python' False, 파이썬은 대소문자를 구분하기 때문에 False

'Python' != 'python' True

 

._숫자의 대소비교, 기준점은 첫 번째 값이다. 따라서 첫 번재 값보다 큰지, 작은지를 비교한다.

> 초과, < 미만, >= 이상, <= 이하

10 > 20 False

10 < 20 True

10 >= 10 True

10 <= 10 True

 

._객체가 같은지 다른지 비교하기(is, is not) 기존에 같다(==), 다르다(!=)는 값 자체를 비교하지만 is 와 is not은 객체(object)를 비교한다. 

1 == 1.0 True

1 is 1.0 False

* 1은 정수 객체고 1.0은 실수 객체이기 때문에 False가 출력이 된다.

 

._왜 1과 1.0은 다를까?

id 함수를 사용하면 알 수 있다. id 함수란 객체의 고유한 값(메모리 주소)를 구할 수 있는 함수이다. 따라서 1과 1.0의 각각 갖고있는 메모리 주소가 다르기 때문에 다른 숫자이다. 

메모리 주소를 구하는 id함수

._값 비교에는 is를 쓰지 말자. 변수 a가 있는 상태에서 다른 값을 할당하면 메모리 주소가 달라질 수 있기 때문이다. 따라서 다른 객체가 되므로 값이 같더라도 is로 비교하면 False가 나온다. 값(숫자)를 비교할 때는 is가 아닌 비교 연산자를 사용해야 한다.