6장 선택

파이썬에서는 True와 False라는 불린(Boolean) 값(대문자로 시작하는 것을 주의)을 이용해 참과 거짓을 표현한다. 이러한 불린 값을 이용해 제어 흐름문의 사용 방법을 설명한다.


* 불린 연산자 : and, or, not
  - 우선 순위 : not > and, or
  - not : 단항 영산자로 사용하면 값을 반대로 바꿔준다. 
    + 샘플  
      not False = True
      not True = False
      
  - and : 양쪽의 식이 모두 참일 때 참이다. 
    + 샘플 
      True and True = True
      True and False = False
      False and True = False
      False and False = False
  
  - or : 양쪽의 식 중에 하나라도 참일 때 참이다.
    + 샘플 
      True and True = True
      True and False = True
      False and True = True
      False and False = False
  

* 관계 연산자
  - 설명 : 프로그램에서 불린 값을 만들기 위해서 관계 연산자를 이용한다. 관계 연산자를 이용한 비교를 통해 True,False 값을 만들고, 그것이 제어 흐름문(if, while)을 수행할지 말지를 판단하게 만든다.
  
  - 연산자 : > , < , >= , <= , == , !=
  
  - 우선순위 : 
    1) 산술 연산자(+, -, /, *)는 관계 연산자보다 우선순위가 높다.
    2) 불린 연산자(not, or, and)는 관계 연산자보다 우선순위가 낮다.
    => (+, -, /, *) > 관계 연산자 > (not, or, and)
    
  - 샘플 
    >> 1 > 2
    False
    >> 3 < 5
    True
    
  - 특징 : 여러 비교 수식을 연속해서 쓸 수 있다. 1 < x < 5와 같이 연속해서 사용 가능하다.
  
* 불린값
  - 참과 거짓을 표현하는 값으로 True와 False를 이용한다. 
  - 연산자 별 반환값
    1) 관계 연산자(<,>,<=,>=,==,!=) : True, False로 반환
    2) 불린 연산자(not) : True, False로 반환
    3) 불린 연산자(or, and) : 수식이 종료된 순간의 값을 반환
      + 샘플 
        >> not 1
        False
        >> 1 or 2
        1
        >> 2 and 0
        0
        >> '' and False
        ''
        >> 'test' or True
        'test'

    + 부가설명 : 특이한 점은 True/False를 반환하지 않고 연산이 끝난 값을 반환한다. 이러한 특징을 이용하면 특정 조건에서 값을 할당할 때 사용할 수 있지 않을까하는 생각이 든다.
    
  - 특징 : 숫자 
    1) 수에서 불린값을 사용하면 True는 모든 수로 취급을 하며, False는 0과 0.0으로 취급 한다. 거꾸로도 사용된다. 
      + 샘플 
        >> not 0
        True
        >> not 1
        False
    
    2) and와 or를 포함하는 수식은 왼쪽에서 오른쪽으로 평가한다. 또한 평가를 멈춰도 되면, 아직 평가하지 않은 피연산자가 있더라도 평가를 중단한다. 자바의 &&와 || 연산자와 똑같이 동작한다.
      + 샘플
        >> 0 and 3
        0
        >> 3 and 0
        0
        >> 3 and 5
        5
        >> 1 or 0
        1
        >> 0 or 2
        2
        >> True or 0
        True
 
  - 특징 : 문자열
    1) 문자열에서도 관계 연산자를 사용할 수 있다. 문자열의 문자는 정수로 표현하는데 이 값을 비교해 불린 값을 만든다. 
      + 샘플 
        >> 'A' < 'a'
        True
        >> 'a' > 'z'
        False
        >> 'abc' < 'abz'
        True
        
    2) 빈 문자열은 False, 다른 모든 문자열은 True로 취급된다.
    
  - 특징 : 산술 연산
    1) True는 1, False는 0으로 취급되어 산술 연산이 가능하다.
      + 샘플 
        >> 1 + True
        2
        >> 3 - False
        3


* if 문

  - 설명 : 기본적인 조건문으로 블록을 들여쓰기를 통해 구분한다. elif와 else 키워드를 이용해 중첩 if문을 작성할 수 있다.

  - 형식 :

    if [조건] :

      [if-블록]

    elif [조건] : 

      [elif-블록]

    else :

      [else-블록]

      

    + [조건] : name != ""이나 x<y와 같은 수식. 꼭 불린 값을 필요는 없어서, 결과 값이 자동으로 불린값의 True, False로 자동 변환된다.

    + [블록] : 들여쓰기로 블록을 구분한다. 블록을 적고, 종료되면 빈 한줄을 추가해 if 문이 종료되었음을 표시한다.



Posted by 빌리 :