겉바속촉

[PYTHON] 파이썬_불 타입, 연산자 우선순위, if 문 본문

IT 일기 (상반기)/PYTHON

[PYTHON] 파이썬_불 타입, 연산자 우선순위, if 문

겉바속촉 2021. 1. 5. 10:37
728x90
반응형

 

 

안녕하세요

겉바속촉입니다

!^^!

 

 

!!파이썬 시작하기!!

 

 

 

 

 

 

이번에는

불 타입, 연산자 우선순위, if 문에 대해서

알아보도록 하겠습니다

 

 

 

 

 

 


 

 

 

 

BOOL타입

 

  • True, False 가짐
  • not, and, or 연산 가능
  • 0,  0.0,  빈 문자열(''),  None ==> false,    그 외 모든 수,  문자열 ==> true
  • 불연산자, 비교연산자, 연산자 결합

 

 

연산자 우선순위

 

산술 > 비교> 불

 

1순위 : + , -, *,  /  

2순위 : <, >, <=, >=, ==, !=

3순위 : and, or, not (not - and - or 순으로 높음)

 

 

그런데 다음 예시는 좀 이상합니다

뭔가 말이 이상해요

첫번째는 해석을 이렇게 해주세요 --> (3 < 5)  and  (5  != True)   ---> True

두번째는 해석을 이렇게 해주세요 --> (3 < 5)  and  (5  != False)  ---> True

 

 

단락평가(short-circuit evaluation)

 

and나 or를 포함하는 표현식을 평가할 때 왼쪽부터 오른쪽으로 평가

평가를 멈출만한 충분한 정보를 얻으면 아직 평가하지 않은 피연산자가 있어도 평가를 멈춤

 

  • and 전에 있는 것이 false 라면 and 뒤는 상관 없이  --> 무조건 False
  • or 전에 있는 것이 true 라면 or 뒤는 상관 없이 --> 무조건 true

 

위의 예시처럼 or 뒤에 오는 것이 false 임에도 결과는 true를 출력하고있쥬?

 

 

 

****참고******************************************************************************************

*

*  자바의 경우

*

* ( #1 ) | ( #2 ) => #3

* ( #1 ) || ( #1이 true 이면 생략, 그렇지 않으면 #2 ) => #3(#1이 true이면 true를 반환)

* ( #1 ) & ( #2 ) => #3 

* ( #1 ) && ( #1이 false 이면 생략, 그렇지 않으면 #2 ) => #3(#1이 false이면 false를 반환)

*

****************************************************************************************************

 

 

 

문자열 비교

 

  • ASCII 코드를 기준으로 비교 --> 공백(332) < A(65) < z(122)
  • 사전순 비교 : 문자열 내 서로 대응하는 문자들을 왼쪽 --> 오른쪽으로 비교
  • in 연산자 : 어떤 문자열이 다른 문자열 내에 있는 지 확인

      --> 대소문자 구분
      --> 빈 문자열은 모든 문자열의 부분 문자열

 

 

실행할 명령문 선택

 

 

  • if 문, if ~ elif문, if~elif ~ else 문
  • if문 블록에 다른 if문 포함 : 중첩 if문
  • bool 변수에 의미 있는 이름을 부여하여 코드를 이해하기 쉽게 만듦

 

***if문을 여러개 중첩할 수 있는 것보다 

표현식이 생성하는 값을 참조하는 변수를 생성해서 변수를 재사용할 것***

 

 

 

728x90
반응형