Programming/Python

[Python 3.7] 파이썬 비교 연산자와 논리 연산자 (개념, 종류)

Nirsa 2020. 1. 11. 20:41
반응형

 

파이썬 비교, 논리 연산자는 특히 조건식이 들어가는 문법(if, while)에서 자주 사용됩니다.

 

  • 1. 비교 연산자

숫자와 파이썬이 같은지 또는 다른지 비교할 수 있는데 같은지 판단할때는 ==, 다른지 판단할때는 != 을 사용합니다.

 

첫번째로 숫자는 1과 1은 같으므로(1 == 1) 참(True), 1과 2는 다르므로(1 == 2) 거짓(False) 가 출력 되었고, 만약 1 == 2를 참으로 만들고 싶으면 1 != 2를 사용하면 됩니다.

문자열은 Hello와 Hello는 같으므로 첫번째(==)는 참, 두번째(!=)는 거짓이 출력 되었습니다. 다만 문자열은 주의하여할 점이 한가지가 있는데, 대소문자가 다르면 다른 문자열로 판단하게 되기 때문에 주의 하여야 합니다.

== 과 != 말고도 다른 부등호들이 있습니다.

이상과 이하는 값1 = 값2 도 포함된다는것만 주의하시면 됩니다.

 

  • 2. 객체 비교

객체를 비교할때는 is와 is not을 사용 하는데, ==와 !=는 값만을 비교하고 is와 is not은 객체를 비교하는 차이가 있습니다.

위의 이미지 좌측 보면 1 == 1.0은 값이 같으므로 첫번째(==)는 참, 두번째(!=)는 거짓이 나옵니다.

반면 우측의 1 is 1.0 은 거짓, 1 is not 1.0 은 참이 나옵니다. 즉, 1은 정수 객체이고 1.0은 실수 객체이므로 두 객체가 같지 않아 is는 거짓, is not은 참이 나온겁니다. 이 외에도 값을 비교할때 사용하게 되면 하나의 변수에 여러번 값을 선언할 경우 메모리 주소 변경에 의해서도 참/거짓이 갈리게 되기 때문에 is와 is not은 값을 비교할때 사용하지 마시고 같은 객체인지를 판단할때 사용하는것이 좋습니다. (파이썬을 이제 막 입문하신 분들은 객체의 개념은 아직 잘 모르셔도 되고, 클래스를 배우실때 익히셔도 됩니다)

만약 햇갈리신다면 id 함수를 사용하여 확인 하시면 됩니다.

저기서 나오는 값은 각 객체의 메모리 주소라고 생각하시면 됩니다.

 

  • 3. 논리 연산자

논리연산자에는 and, or, not이 있으며 and는 두 값이 모두 참일때 참, or는 두 값중 한가지라도 참일경우 참입니다.

위 이미지에서 좌측은 and 연산자, 우측은 or 연산자 입니다.

and 연산자는 두 값이 모두 참(True) 일때 참이므로 True and True만이 참이고 나머지는 모두 거짓 입니다. (False and False는 얼핏 보면 참으로 나와야할 것 같지만, False 자체가 거짓을 나타내기 때문에 두 값이 모두 거짓이므로 False가 맞습니다)

or 연산자는 두 값중 하나만이 참이라도 참 입니다. 때문에 첫번째부터 세번째까지 모두 참이고 (두 값이 모두 참이여도 참, 하나만 참이여도 참, 두 값이 모두 거짓일때만 거짓) 마지막 False or False (거짓 or 거짓)은 참이 어느 하나도 없기 때문에 False 가 출력됩니다.

not 연산자는 굉장히 단순하면서도 햇갈리는 연산자인데, 논리값을 뒤집어 버립니다. 즉 참이면 거짓으로, 거짓이면 참으로 뒤집어 버리기 때문에 잘 봐야 합니다.

※ 식 하나에 and, or, not이 모두 있으면 not, and, or 순으로 됩니다.

논리 연산자와 비교 연산자를 함께 사용할 수 있고, 아래 이미지를 참고해 주세요.

 

  • 4. 비교 연산자와 논리 연산자의 종류

비교 연산자 문법 설명
== a == b 같음
!= a != b 같지 않음
> a > b 큼 (초과)
< a < b 작음 (미만)
>= a >= b 크거나 같음 (이상)
<= a <= b 작거나 같음 (이하)
is a is b 객체가 같음
is not a is not b 객체가 같지 않음
논리 연산자 문법 설명
and a and b AND(논리곱), 양쪽 모두 참일 때 참
or a or b OR((논리합), 양쪽 중 한쪽만 참이라도 참
not not x NOT(논리부정), 참과 거짓을 뒤집음

 

짧) 단락 평가란?

논리 연산에서는 단락 평가라는 개념이 있습니다.

첫 번째 값만으로 결과가 확실해지면 그 다음 값은 확인하지 않는 방법인데, 아래 이미지를 참고 해주세요.

반응형