05의 개발 계발

[TIL] 230320 [Python] or 연산자의 bool타입 연산 본문

TIL

[TIL] 230320 [Python] or 연산자의 bool타입 연산

생각하는 코댕이 2023. 3. 20. 23:21
728x90

TIL 학습목표

  • python or 연산자와 and 연산자의 bool타입 연산에 대해 이해한다.
  • or 연산자, and 연산자 사용 시 올바른 형태를 사용할 줄 안다.

1) 문제점 (Problem)

python 기초문법의 예제로 조건문을 만들었다. if를 활용해 주민번호(pin)를 구별하여 대상의 성별을 출력하는 예제를 좀 더 세분화 하였고, 이때 or 연산자를 사용하였다.
그러나 if 구문에서 or 연산자 사용에 있어 형식 차이로 인한 오류가 발생하였다.
형식별 오류와 원인을 알아보자.


2) 시도해본 것들 (Try)

▶1번 result == 1 or 3 형식    ▶ (결과)고장났다!

if result ==1 or 3:

result 값은 정상적으로 나오나, if 문이 정상 작동 하지 않는다. 고장났다.

 


▶2번 result == (1 or 3) 형식  ▶ (결과)반푼이!

if result == (1 or 3):

result 값은 정상적으로 나오나, if 문이 or 앞의 숫자(int)들만 인식한다. 반만 작동하는 반푼이다.

* 참고로 소괄호() 를, 중괄호{}나 대괄호[] 로 대체하면 1번의 경우와 같은 결과가 나온다.


▶3번 result == 1 or result == 3  형식  ▶ (결과)성공!  이거다!

 if result ==1  or result == 3:

result 값과 if 문의 or 도 제대로 인식한다. 정상작동한다. 이거다!


위의 결과가 나오는 것은 python에서 and 와 or 연산자의 특징에 의한 부분이다.
참고자료를 통해 bool타입(참,거짓) 연산에 작동하는 원리를 익혀두자. 


3) 해결 (Solution)

result == 1 or result == 3  형식으로 해결

and 연산자와 or 연산자는 [ 표현식1 or 표현식2 ] 의 형태로 인식한다.
즉, 표현식1과 표현식2 모두 온전한 조건식의 형태를 갖춰야 제대로 인식한다.


4) 알게 된 점  (Learnd)

or 연산자는  [ 표현식1 or 표현식2 ] 의 형태로 조건식을 인식하며, bool타입의 경우 처음 조건이 거짓이면 뒤의 조건을 리턴해준다. 이는 파이썬 자체에서 내부의 계산을 줄이는 or 연산자의 특징이다.

728x90